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

namespace LLNet.Tienda.MainForms.Forms
{
    public partial class frmFinanciamiento : LLNet.GUI.FormBases.frmBase
    {
        #region Declaraciones

        private decimal documento;
        private decimal cantidadPagos;
        private decimal? socioAvalista;

        private int pagosFin;
        private decimal pctEngancheActualFin;

        #endregion

        #region Constructor

        public frmFinanciamiento()
        {
            InitializeComponent();

            GUI.CApp.TraducirForm(this);
        }

        #endregion

        #region Metodos Sobreescritos

        public override void Init(object[] pArgs)
        {
            base.Init(pArgs);
            Utils.QueryParams qp = new LLNet.Utils.QueryParams();
            qp.AddReplaceParam("RV_DOMAIN", "EMISOR");
            dsEmisores.DOMAINS.Clear();
            Utils.Helpers.Merge(GUI.CApp.bll.getTypedDataSet(dsEmisores.GetType(), dsEmisores.DOMAINS.TableName, qp), dsEmisores);

            qp.Clear();
            qp.AddReplaceParam("RV_DOMAIN", "ESCENARIOS FINANCIERAS' AND SYSDATE BETWEEN TRUNC(NVL(RV_MPDC01,SYSDATE)) AND TRUNC(NVL(RV_MPDC02,SYSDATE))+0.99999 --");
            dsFinancieras.DOMAINS.Clear();
            Utils.Helpers.Merge(GUI.CApp.bll.getTypedDataSet(dsFinancieras.GetType(), dsFinancieras.DOMAINS.TableName, qp), dsFinancieras);

            documento = Program.FrmMainPos.Order;
            Model.PDV.DsPDV.WMS_DOCUMENTOSRow docRow = Program.FrmMainPos.DsPedido.WMS_DOCUMENTOS[0];

            if (docRow["ENGANCHE"] != DBNull.Value)
                txtEnganche.EditValue = docRow["ENGANCHE"];

            qp.Clear();
            qp.AddReplaceParam("MODALIDAD", Utils.Helpers.Nvl(docRow["SUBTIPO_PAGO"], "NULL").ToString());
            lueEmisores.EditValue = GUI.CApp.bll.GetSingleValue("ObtieneEmisor", qp, "PDV");
            lueModalidad.EditValue = docRow["SUBTIPO_PAGO"];

            txtMontoFin.EditValue = docRow.TOTAL;

            if (docRow["ESCENARIO_FINANCIERA"] != DBNull.Value)
            {
                lueFinancieras.EditValue = docRow.ESCENARIO_FINANCIERA;
                xtraTabControl1.SelectedTabPage = xtraTabPage2;
            }
            else
                xtraTabControl1.SelectedTabPage = xtraTabPage1;

            if (docRow["APROBACION2"] != DBNull.Value)
                txtAutorizacion.EditValue = docRow.APROBACION2;

            if (docRow["CANTIDAD_PAGOS"] != DBNull.Value)
            {
                luePagos.EditValue = docRow.CANTIDAD_PAGOS;
                Utils.QueryParams qpCP = new LLNet.Utils.QueryParams();
                if (docRow["ESCENARIO_FINANCIERA"] != DBNull.Value)
                {
                    qpCP.AddReplaceParam("STATEMENT", string.Format(@"
                    SELECT RV_MPCC02
                    FROM   CG_REF_CODES
                    WHERE  RV_DOMAIN = 'PAGOS FINANCIERAS'
                    AND    RV_MPCC01 = '{0}'
                    AND    RV_MPNC03 = '{1}'", docRow.ESCENARIO_FINANCIERA, docRow.CANTIDAD_PAGOS));
                    chkImpuestoIntFin.EditValue = (Utils.Helpers.ObjToStr(GUI.CApp.bll.GetSingleValue("RunGenericStatement", qpCP, "PDV")) == "X");                    
                }
            }

            if (docRow["ENGANCHE"] != DBNull.Value)
            {
                spePctEngFin.EditValue = docRow.ENGANCHE / docRow.TOTAL * 100;
                txtEngancheFin.EditValue = docRow.ENGANCHE;
            }

            if (docRow["PORCENTAJE_INTERES"] != DBNull.Value)
                spePctInteresFin.EditValue = docRow.PORCENTAJE_INTERES;

            if (docRow["SOCIO_AVALISTA"] != DBNull.Value)
            {
                socioAvalista = docRow.SOCIO_AVALISTA;
                Utils.QueryParams qpStmt = new LLNet.Utils.QueryParams();
                qpStmt.AddReplaceParam("STATEMENT", "SELECT nombre FROM wms_socios WHERE socio = " + socioAvalista.ToString());
                beClienteAvalista.EditValue = GUI.CApp.bll.GetSingleValue("RunGenericStatement", qpStmt, "PDV");
            }
            else
                socioAvalista = null;

            if (docRow["CUOTAS"] != DBNull.Value)
                txtCuotasFin.EditValue = docRow.CUOTAS;

            if (docRow["FECHA_PRIMERA_CUOTA"] != DBNull.Value)
                datPrimeraCuota.EditValue = docRow.FECHA_PRIMERA_CUOTA;

            if (docRow["ULTIMA_CUOTA"] != DBNull.Value)
                txtUltimaCuotaFin.EditValue = docRow.ULTIMA_CUOTA;

            modificarCuotas(false);
        }

        #endregion

        #region Eventos

        private void lueEmisores_EditValueChanged(object sender, EventArgs e)
        {
            string filtro = "MODALIDADES EMISOR' AND RV_MPCC01 = '{0}";
            string emisor = Utils.Helpers.ObjToStr(((DevExpress.XtraEditors.LookUpEdit)sender).EditValue);

            Utils.QueryParams qp = new LLNet.Utils.QueryParams();
            qp.AddReplaceParam("RV_DOMAIN", string.Format(filtro, emisor));
            dsModalidad.DOMAINS.Clear();
            Utils.Helpers.Merge(GUI.CApp.bll.getTypedDataSet(dsModalidad.GetType(), dsModalidad.DOMAINS.TableName, qp, "DomainSortedByLowValue"), dsModalidad);
        }

        private void lueModalidad_EditValueChanged(object sender, EventArgs e)
        {
            cantidadPagos = Convert.ToDecimal(((DevExpress.XtraEditors.LookUpEdit)sender).GetColumnValue("RV_MPNC01"));
        }

        private void frmFinanciamiento_Load(object sender, EventArgs e)
        {
            layoutControl1.Focus();
            layoutControl1.FocusHelper.FocusFirst();

            btnCalcular.Visible = (xtraTabControl1.SelectedTabPage == xtraTabPage2);
            btnModificarCuotas.Visible = btnCalcular.Visible;

        }

        private void spePctEnganche_EditValueChanged(object sender, EventArgs e)
        {
            txtEnganche.EditValue = Math.Round(Program.FrmMainPos.DsPedido.WMS_DOCUMENTOS[0].TOTAL * Convert.ToDecimal(((DevExpress.XtraEditors.SpinEdit)sender).EditValue) / 100, 0);
        }

        private void lueFinancieras_EditValueChanged(object sender, EventArgs e)
        {
            string filtro = "PAGOS FINANCIERAS' AND RV_MPCC01 = '{0}";
            string emisor = Utils.Helpers.ObjToStr(((DevExpress.XtraEditors.LookUpEdit)sender).EditValue);

            Utils.QueryParams qp = new LLNet.Utils.QueryParams();
            qp.AddReplaceParam("RV_DOMAIN", string.Format(filtro, emisor));
            dsPagos.DOMAINS.Clear();
            Utils.Helpers.Merge(GUI.CApp.bll.getTypedDataSet(dsPagos.GetType(), dsPagos.DOMAINS.TableName, qp, "DomainSortedByLowValue"), dsPagos);
        }

        private void luePagos_EditValueChanged(object sender, EventArgs e)
        {
            pagosFin = Convert.ToInt32(((DevExpress.XtraEditors.LookUpEdit)sender).EditValue);
            spePctEngFin.EditValue = ((DevExpress.XtraEditors.LookUpEdit)sender).GetColumnValue("RV_MPNC01");
            spePctInteresFin.EditValue = ((DevExpress.XtraEditors.LookUpEdit)sender).GetColumnValue("RV_MPNC02");
            pctEngancheActualFin = Convert.ToDecimal(spePctEngFin.EditValue);
            chkImpuestoIntFin.EditValue = (Utils.Helpers.ObjToStr(((DevExpress.XtraEditors.LookUpEdit)sender).GetColumnValue("RV_MPCC02")) == "X");
            txtEngancheFin.EditValue = Convert.ToDecimal(txtMontoFin.EditValue) * Convert.ToDecimal(spePctEngFin.EditValue) / 100;
            txtTAFinanciarFin.EditValue = Convert.ToDecimal(txtMontoFin.EditValue) - Convert.ToDecimal(txtEngancheFin.EditValue);

        }

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

        private void btnAceptar_Click(object sender, EventArgs e)
        {
            Control activeCtrl = ActiveControl;
            while (activeCtrl is ContainerControl)
                activeCtrl = ((ContainerControl)activeCtrl).ActiveControl;
            if (activeCtrl is DevExpress.XtraEditors.TextBoxMaskBox)
                activeCtrl = activeCtrl.Parent;
            if (activeCtrl is DevExpress.XtraEditors.BaseEdit)
                ((DevExpress.XtraEditors.BaseEdit)activeCtrl).DoValidate();

            Model.PDV.DsPDV.WMS_DOCUMENTOSRow dRow = Program.FrmMainPos.DsPedido.WMS_DOCUMENTOS[0];
            if (xtraTabControl1.SelectedTabPage == xtraTabPage1)
            {
                if (lueModalidad.EditValue != null && lueModalidad.EditValue != DBNull.Value)
                {
                    dRow.ENGANCHE = Math.Round(Convert.ToDecimal(txtEnganche.EditValue), 7);
                    dRow.CANTIDAD_PAGOS = cantidadPagos;
                    dRow.SUBTIPO_PAGO = Convert.ToDecimal(lueModalidad.EditValue);
                    dRow.SetAPROBACION2Null();
                    dRow.SetESCENARIO_FINANCIERANull();
                    dRow.SetCUOTASNull();
                    dRow.SetULTIMA_CUOTANull();
                    dRow.SetPORCENTAJE_INTERESNull();
                    dRow.SetSOCIO_AVALISTANull();
                    dRow.SetFECHA_PRIMERA_CUOTANull();
                    GUI.CApp.bll.updateDataSet(Program.FrmMainPos.DsPedido, Program.FrmMainPos.DsPedido.WMS_DOCUMENTOS.TableName);

                    Utils.QueryParams qp = new LLNet.Utils.QueryParams();
                    qp.AddReplaceParam("DOCUMENTO", Utils.Helpers.ObjToNullStr(documento));
                    qp.AddReplaceParam("MODALIDAD", Utils.Helpers.ObjToNullStr(lueModalidad.EditValue));
                    qp.AddReplaceParam("PCT_ENGANCHE", Utils.Helpers.ObjToNullStr(spePctEnganche.EditValue));
                    qp.AddReplaceParam("ELIMINAR", "NULL");
                    GUI.CApp.bll.ExecuteSql("WMS_P_CALCULAR_RECARGOS", qp, "PDV");
                    Program.FrmMainPos.RefreshData();
                }
                else
                {
                    GUI.CApp.ShowMessage("El emisor no tiene modalidades definidas o no ha seleccionado emisor", "Financiamiento", true);
                    return;
                }
            }
            else
            {
                if (Convert.ToDateTime(datPrimeraCuota.EditValue) >= System.DateTime.Today)
                {
                    if (Utils.Helpers.ObjToStr(txtAutorizacion.EditValue) != "")
                    {
                        dRow.ENGANCHE = Math.Round(Convert.ToDecimal(txtEngancheFin.EditValue), 7);
                        dRow.CANTIDAD_PAGOS = pagosFin;
                        dRow.SetSUBTIPO_PAGONull();
                        dRow.APROBACION2 = Utils.Helpers.ObjToStr(txtAutorizacion.EditValue);
                        dRow.ESCENARIO_FINANCIERA = Convert.ToDecimal(lueFinancieras.EditValue);
                        dRow.CUOTAS = Convert.ToDecimal(txtCuotasFin.EditValue);
                        dRow.ULTIMA_CUOTA = Convert.ToDecimal(txtUltimaCuotaFin.EditValue);
                        dRow.PORCENTAJE_INTERES = Convert.ToDecimal(spePctInteresFin.EditValue);
                        if (socioAvalista != null)
                            dRow.SOCIO_AVALISTA = (decimal)socioAvalista;

                        dRow.FECHA_PRIMERA_CUOTA = Convert.ToDateTime(datPrimeraCuota.EditValue);
                        dRow.FECHA_VENCIMIENTO = dRow.FECHA_PRIMERA_CUOTA.AddMonths(Convert.ToInt32(dRow.CANTIDAD_PAGOS));
                        GUI.CApp.bll.updateDataSet(Program.FrmMainPos.DsPedido, Program.FrmMainPos.DsPedido.WMS_DOCUMENTOS.TableName);

                        Utils.QueryParams qp = new LLNet.Utils.QueryParams();
                        qp.AddReplaceParam("DOCUMENTO", documento.ToString());
                        qp.AddReplaceParam("MODALIDAD", "NULL");
                        qp.AddReplaceParam("PCT_ENGANCHE", "NULL");
                        qp.AddReplaceParam("ELIMINAR", "1");
                        GUI.CApp.bll.ExecuteSql("WMS_P_CALCULAR_RECARGOS", qp, "PDV");
                        Program.FrmMainPos.RefreshData();
                    }
                    else
                    {
                        GUI.CApp.ShowMessage("El número de autorización es incorrecto", "Financiamiento", true);
                        return;
                    }
                }
                else
                {
                    GUI.CApp.ShowMessage("La fecha de la primera cuota es incorrecta", "Financiamiento", true);
                    return;
                }
            }
            DialogResult = DialogResult.OK;
        }

        private void frmFinanciamiento_KeyDown(object sender, KeyEventArgs e)
        {
            switch (e.KeyCode)
            {
                case Keys.F7:
                    if (btnModificarCuotas.Visible)
                        btnModificarCuotas_Click(null, null);
                    break;
                case Keys.F8:
                    if (btnCalcular.Visible)
                        btnCalcular_Click(null, null);
                    break;
                case Keys.F9:
                    btnEliminar_Click(null, null);
                    break;
                case Keys.F10:
                    xtraTabControl1.SelectedTabPage = xtraTabPage1;
                    layoutControl1.FocusHelper.FocusFirst();
                    break;
                case Keys.F11:
                    xtraTabControl1.SelectedTabPage = xtraTabPage2;
                    layoutControl2.FocusHelper.FocusFirst();
                    break;
                case Keys.F12:
                    btnAceptar_Click(null, null);
                    break;
                case Keys.Escape:
                    btnSalir_Click(null, null);
                    break;
            }
        }

        private void btnEliminar_Click(object sender, EventArgs e)
        {
            lueEmisores.EditValue = null;
            lueModalidad.EditValue = null;
            spePctEnganche.EditValue = null;
            txtEnganche.EditValue = null;

            lueFinancieras.EditValue = null;
            txtAutorizacion.EditValue = null;
            beClienteAvalista.EditValue = null;
            luePagos.EditValue = null;
            spePctEngFin.EditValue = null;
            txtEngancheFin.EditValue = null;
            txtCuotasFin.EditValue = null;
            txtTAFinanciarFin.EditValue = null;
            datPrimeraCuota.EditValue = null;
            spePctInteresFin.EditValue = null;
            chkImpuestoIntFin.EditValue = null;
            txtTotalFin.EditValue = null;
            txtUltimaCuotaFin.EditValue = null;

            Model.PDV.DsPDV.WMS_DOCUMENTOSRow dRow = Program.FrmMainPos.DsPedido.WMS_DOCUMENTOS[0];

            dRow.SetENGANCHENull();
            dRow.SetCANTIDAD_PAGOSNull();
            dRow.SetSUBTIPO_PAGONull();
            dRow.SetAPROBACION2Null();
            dRow.SetESCENARIO_FINANCIERANull();
            dRow.SetCUOTASNull();
            dRow.SetULTIMA_CUOTANull();
            dRow.SetPORCENTAJE_INTERESNull();
            dRow.SetFECHA_PRIMERA_CUOTANull();
            dRow.SetSOCIO_AVALISTANull();

            GUI.CApp.bll.updateDataSet(Program.FrmMainPos.DsPedido, Program.FrmMainPos.DsPedido.WMS_DOCUMENTOS.TableName);

            Utils.QueryParams qp = new LLNet.Utils.QueryParams();
            qp.AddReplaceParam("DOCUMENTO", documento.ToString());
            qp.AddReplaceParam("MODALIDAD", "NULL");
            qp.AddReplaceParam("PCT_ENGANCHE", "NULL");
            qp.AddReplaceParam("ELIMINAR", "1");
            GUI.CApp.bll.ExecuteSql("WMS_P_CALCULAR_RECARGOS", qp, "PDV");
            Program.FrmMainPos.RefreshData();

        }

        private void txtEnganche_EditValueChanged(object sender, EventArgs e)
        {
            if (Utils.Helpers.ObjToStr(((DevExpress.XtraEditors.TextEdit)sender).EditValue) != "")
                spePctEnganche.EditValue = Convert.ToDecimal(((DevExpress.XtraEditors.TextEdit)sender).EditValue) / Program.FrmMainPos.DsPedido.WMS_DOCUMENTOS[0].TOTAL * 100;
        }

        private void spePctEngFin_EditValueChanged(object sender, EventArgs e)
        {
            txtEngancheFin.EditValue = Math.Round(Convert.ToDecimal(txtMontoFin.EditValue) * Convert.ToDecimal(((DevExpress.XtraEditors.SpinEdit)sender).EditValue) / 100, 0);
            txtTAFinanciarFin.EditValue = Convert.ToDecimal(txtMontoFin.EditValue) - Convert.ToDecimal(txtEngancheFin.EditValue);
        }

        private void txtCuotasFin_EditValueChanged(object sender, EventArgs e)
        {
            if (Utils.Helpers.ObjToStr(((DevExpress.XtraEditors.TextEdit)sender).EditValue) != "")
                txtTotalFin.EditValue = (Convert.ToDecimal(((DevExpress.XtraEditors.TextEdit)sender).EditValue) * (pagosFin - 1)) + Convert.ToDecimal(txtEngancheFin.EditValue) + Convert.ToDecimal(txtUltimaCuotaFin.EditValue);
        }

        private void txtUltimaCuotaFin_EditValueChanged(object sender, EventArgs e)
        {
            if (Utils.Helpers.ObjToStr(((DevExpress.XtraEditors.TextEdit)sender).EditValue) != "")
                txtTotalFin.EditValue = (Convert.ToDecimal(txtCuotasFin.EditValue) * (pagosFin - 1)) + Convert.ToDecimal(txtEngancheFin.EditValue) + Convert.ToDecimal(((DevExpress.XtraEditors.TextEdit)sender).EditValue);
        }

        private void beClienteAvalista_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
        {
            if (e.Button.Index == 0)
            {
                Tienda.MainForms.Finders.frmFindCustomer fc = new LLNet.Tienda.MainForms.Finders.frmFindCustomer();
                fc.Init(null);
                fc.ShowDialog(this);

                if (fc.DialogResult == DialogResult.OK)
                {
                    socioAvalista = Convert.ToDecimal(fc.Socio);
                    beClienteAvalista.EditValue = fc.Nombre;
                }
            }
            else
            {
                socioAvalista = null;
                beClienteAvalista.EditValue = null;
            }
        }

        private void xtraTabControl1_Click(object sender, EventArgs e)
        {
        }

        private void CalculaCuotas(double Monto, int Meses, double Tasa, double Enganche, bool ImpuestoInt)
        {
            double Cuotas;
            double UltimaCuota;
            double Intereses;
            double Impuesto;

            Impuesto = 1 + (Convert.ToDouble(GUI.CApp.GetParam("PIVA")) / 100);
            if (ImpuestoInt == false)
            {
                Cuotas = ((((Monto * Tasa / 100) * Meses) + Monto)) / Meses;
                Cuotas = Math.Floor(Cuotas);
                Intereses = Monto * Tasa / 100 * Meses;
            }
            else
            {
                Cuotas = ((((Monto * Tasa / 100) * (Meses * Impuesto)) + Monto)) / Meses;
                Cuotas = Math.Floor(Cuotas);
                Intereses = Monto * Tasa / 100 * Meses * Impuesto;
            }

            UltimaCuota = Monto + Intereses - (Cuotas * (Meses - 1));
            txtCuotasFin.EditValue = Cuotas;
            txtUltimaCuotaFin.EditValue = UltimaCuota;

        }

        private void btnCalcular_Click(object sender, EventArgs e)
        {
            if (dsPagos.DOMAINS.Count > 0)
            {
                if (Utils.Helpers.ObjToStr(txtTAFinanciarFin.EditValue) != "" || Utils.Helpers.ObjToStr(luePagos.EditValue) != "" || Utils.Helpers.ObjToStr(dsPagos.DOMAINS[0]["RV_MPNC02"]) != "" || Utils.Helpers.ObjToStr(txtEngancheFin.EditValue) != "")
                {
                    double pMonto = Convert.ToDouble(txtTAFinanciarFin.EditValue);
                    int pMeses = Convert.ToInt32(luePagos.EditValue);
                    double pTasa = Convert.ToDouble(dsPagos.DOMAINS[0]["RV_MPNC02"]);
                    double pEnganche = Convert.ToDouble(txtEngancheFin.EditValue);
                    bool pImpuestoInt = Convert.ToBoolean(chkImpuestoIntFin.EditValue);

                    CalculaCuotas(pMonto, pMeses, pTasa, pEnganche, pImpuestoInt);
                }
                else
                    GUI.CApp.ShowMessage("Los campos A Financiar, Meses, Tasa de Interes y Enganche deben de estar ingresados", "Financiamiento y Recargos", true);
            }
            else
                GUI.CApp.ShowMessage("No ha seleccionado el número de pagos", "Financiamiento y Recargos", true);
        }

        private void txtEngancheFin_EditValueChanged(object sender, EventArgs e)
        {
            if (Utils.Helpers.ObjToStr(((DevExpress.XtraEditors.TextEdit)sender).EditValue) != string.Empty)
            {
                spePctEngFin.EditValue = Convert.ToDecimal(((DevExpress.XtraEditors.TextEdit)sender).EditValue) / Convert.ToDecimal(txtMontoFin.EditValue) * 100;
                txtTAFinanciarFin.EditValue = Convert.ToDecimal(txtMontoFin.EditValue) - Convert.ToDecimal(((DevExpress.XtraEditors.TextEdit)sender).EditValue);
            }
        }

        private void modificarCuotas(bool state)
        {
            txtCuotasFin.Properties.ReadOnly = !state;
            txtUltimaCuotaFin.Properties.ReadOnly = !state;
            txtCuotasFin.Focus();
        }

        private void btnModificarCuotas_Click(object sender, EventArgs e)
        {
            if (GUI.CApp.ValidateAccess("CuotasFinanciamiento", "modificar cuotas de financiamiento"))
                modificarCuotas(true);
        }

        private void xtraTabControl1_SelectedPageChanging(object sender, DevExpress.XtraTab.TabPageChangingEventArgs e)
        {
            if (Utils.Helpers.ObjToStr(GUI.CApp.GetParam("AOPF")) == "NO" && e.Page == xtraTabPage2)
            {
                Utils.QueryParams qp = new LLNet.Utils.QueryParams();
                qp.AddReplaceParam("DOCUMENTO", documento.ToString());
                if (Convert.ToInt32(GUI.CApp.bll.GetSingleValue("OfertasDocCount", qp, "PDV")) > 0)
                {
                    GUI.CApp.ShowMessage("No se puede ingresar datos de financiamiento para un pedido con productos ofertados", "Recargos y Financiamiento", true);
                    e.Cancel = true;
                }
            }

            btnCalcular.Visible = (!e.Cancel && e.Page == xtraTabPage2);
            btnModificarCuotas.Visible = btnCalcular.Visible;
        }

        private void datPrimeraCuota_Validating(object sender, CancelEventArgs e)
        {
            if (((DevExpress.XtraEditors.DateEdit)sender).DateTime < DateTime.Today)
                e.Cancel = true;
        }

        private void datPrimeraCuota_InvalidValue(object sender, DevExpress.XtraEditors.Controls.InvalidValueExceptionEventArgs e)
        {
            e.ExceptionMode = DevExpress.XtraEditors.Controls.ExceptionMode.DisplayError;
            e.ErrorText = "La fecha ingresada no es correcta";
            e.WindowCaption = "Financiamiento";
        }

        private void txtEnganche_Validating(object sender, CancelEventArgs e)
        {
            if (Program.FrmMainPos.DsPedido.WMS_DOCUMENTOS[0].TOTAL < Convert.ToDecimal(((DevExpress.XtraEditors.TextEdit)sender).EditValue))
                e.Cancel = true;
        }

        private void txtEnganche_InvalidValue(object sender, DevExpress.XtraEditors.Controls.InvalidValueExceptionEventArgs e)
        {
            e.ErrorText = "El enganche no es válido";
            e.ExceptionMode = DevExpress.XtraEditors.Controls.ExceptionMode.DisplayError;
        }

        private void txtEngancheFin_Validating(object sender, CancelEventArgs e)
        {
            if (Program.FrmMainPos.DsPedido.WMS_DOCUMENTOS[0].TOTAL < Convert.ToDecimal(((DevExpress.XtraEditors.TextEdit)sender).EditValue))
                e.Cancel = true;
        }

        private void txtEngancheFin_InvalidValue(object sender, DevExpress.XtraEditors.Controls.InvalidValueExceptionEventArgs e)
        {
            e.ErrorText = "El enganche no es válido";
            e.ExceptionMode = DevExpress.XtraEditors.Controls.ExceptionMode.DisplayError;
        }

        #endregion

        private void labelControl1_Click(object sender, EventArgs e)
        {

        }
    }
}