Exemple #1
0
        private void Acreedor_BT_Click(object sender, EventArgs e)
        {
            _tipo_titular = (ETipoTitular)(long)TipoTitular_CB.SelectedValue;

            switch (_tipo_titular)
            {
            case ETipoTitular.Despachante:
            {
                CustomAgentSelectForm form = new CustomAgentSelectForm(this, EEstado.Active);
                if (form.ShowDialog(this) == DialogResult.OK)
                {
                    _acreedor        = (IAcreedorInfo)form.Selected;
                    Acreedor_TB.Text = _acreedor.Nombre;
                }
            }
            break;

            case ETipoTitular.Naviera:
            {
                ShippingCompanySelectForm form = new ShippingCompanySelectForm(this, EEstado.Active);
                if (form.ShowDialog(this) == DialogResult.OK)
                {
                    _acreedor        = (IAcreedorInfo)form.Selected;
                    Acreedor_TB.Text = _acreedor.Nombre;
                }
            }
            break;

            case ETipoTitular.Proveedor:
            {
                ProveedorList      list = ProveedorList.GetList(EEstado.Active, false);
                SupplierSelectForm form = new SupplierSelectForm(this, list);

                if (form.ShowDialog(this) == DialogResult.OK)
                {
                    _acreedor        = (IAcreedorInfo)form.Selected;
                    Acreedor_TB.Text = _acreedor.Nombre;
                }
            }
            break;

            case ETipoTitular.TransportistaOrigen:
            case ETipoTitular.TransportistaDestino:
            {
                TransporterSelectForm form = new TransporterSelectForm(this, TransporterList.GetList(false));
                if (form.ShowDialog(this) == DialogResult.OK)
                {
                    _acreedor        = (IAcreedorInfo)form.Selected;
                    Acreedor_TB.Text = _acreedor.Nombre;
                }
            }
            break;
            }
        }
Exemple #2
0
        private void TipoTitular_CB_SelectedIndexChanged(object sender, EventArgs e)
        {
            ETipoTitular tipoTitular = (ETipoTitular)(long)TipoTitular_CB.SelectedValue;

            Cliente_GB.Enabled  = (tipoTitular == ETipoTitular.Todos);
            Acreedor_GB.Enabled = (tipoTitular == ETipoTitular.Todos);

            if (tipoTitular == ETipoTitular.Todos)
            {
                TodosCliente_CkB.Checked  = true;
                TodosAcreedor_CkB.Checked = true;
                _cliente         = null;
                _acreedor        = null;
                Cliente_TB.Text  = string.Empty;
                Acreedor_TB.Text = string.Empty;
            }
        }
Exemple #3
0
        //private ExcelExporter _exporter;

        #endregion

        #region Factory Methods

        public PreciosForm(ETipoTitular tipo,
                           IDataReader reader,
                           string filtro)
            : base(true)
        {
            InitializeComponent();

            _tipo   = tipo;
            _reader = reader;
            _filtro = filtro;

            if (tipo == ETipoTitular.Cliente)
            {
                this.Text = Resources.Labels.INFORME_PRECIOS_CLIENTES;
            }
            else
            {
                this.Text = Resources.Labels.INFORME_PRECIOS_PROVEEDORES;
            }

            SetFormData();
        }
        public static ETipoAcreedor ToETipoAcreedor(ETipoTitular source)
        {
            switch (source)
            {
            case ETipoTitular.Acreedor: return(ETipoAcreedor.Acreedor);

            case ETipoTitular.Partner: return(ETipoAcreedor.Partner);

            case ETipoTitular.Proveedor: return(ETipoAcreedor.Proveedor);

            case ETipoTitular.Naviera: return(ETipoAcreedor.Naviera);

            case ETipoTitular.TransportistaOrigen: return(ETipoAcreedor.TransportistaOrigen);

            case ETipoTitular.TransportistaDestino: return(ETipoAcreedor.TransportistaDestino);

            case ETipoTitular.Despachante: return(ETipoAcreedor.Despachante);

            case ETipoTitular.Instructor: return(ETipoAcreedor.Instructor);
            }

            return(ETipoAcreedor.Todos);
        }
Exemple #5
0
        public void ExportInformePrecios(System.Data.DataTable datos, ETipoTitular tipo, string filtro)
        {
            Excel.Workbook  theWorkbook = NewWorkbook();
            Excel.Worksheet sheet       = (Excel.Worksheet)theWorkbook.ActiveSheet;
            Excel.Range     rango       = null;
            string          nombre      = string.Empty;

            sheet.PageSetup.Orientation             = Excel.XlPageOrientation.xlLandscape;
            sheet.Columns.Cells.Font.Name           = "Arial";
            sheet.Columns.Cells.Font.Size           = 7;
            sheet.Columns.Cells.Font.Bold           = false;
            sheet.Columns.Cells.VerticalAlignment   = Excel.XlVAlign.xlVAlignCenter;
            sheet.Columns.Cells.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;
            sheet.Columns.Cells.ShrinkToFit         = false;

            int fila_inicial  = 7;
            int cols_per_page = 10;

            int row_index   = fila_inicial;
            int col_section = cols_per_page;
            int col_index   = 1;

            sheet.Cells[2, 1] = (tipo == ETipoTitular.Cliente) ? Resources.Labels.PRECIOS_CLIENTES_REPORT : Resources.Labels.PRECIOS_PROVEEDORES_REPORT;
            sheet.Cells[4, 1] = "Filtro: " + filtro;
            sheet.Cells[5, 1] = "Fecha de impresión: " + DateTime.Today.ToShortDateString();

            rango = GetRange(sheet, 'A', 4, 2, true);

            //Dar formato a las cabeceras mediante rangos -> negrita, alineación central, ajustar, sombrado y bordes
            rango                = GetRange(sheet, 'A', 2, col_section + 1, false);
            rango.MergeCells     = true;
            rango.Font.Bold      = true;
            rango.Font.Size      = 9;
            rango.Borders.Weight = Excel.XlBorderWeight.xlThin;

            string[] maxWords = new string[0];
            string   maxWord  = string.Empty;

            for (int i = 1; i < datos.Columns.Count; i++)
            {
                string   cName = datos.Columns[i].ColumnName.Replace("\n", " ");
                string[] words = cName.Split(Convert.ToChar(" "));

                foreach (string word in words)
                {
                    if (maxWord.Length < word.Length)
                    {
                        maxWord = word;
                    }
                }

                if (words.Length > maxWords.Length)
                {
                    maxWords = words;
                }
            }

            //Numero de páginas en función de las columnas
            int resto;
            int pages = Math.DivRem(datos.Columns.Count - 1, cols_per_page, out resto);

            if (resto > 0)
            {
                pages++;
            }

            for (int page = 0; page < pages; page++)
            {
                try
                {
                    //Correccion de numero de columnas para la ultima pagina
                    if (col_index + col_section > datos.Columns.Count)
                    {
                        col_section = (datos.Columns.Count - col_index);
                    }

                    //Dar formato a las cabeceras mediante rangos -> alineación central, ajustar, sombreado y bordes
                    rango = GetRange(sheet, 'A', row_index++, col_section + 1, false);

                    int h = 10;
                    rango.RowHeight = h * maxWords.Length;
                    sheet.Columns.Cells.ShrinkToFit = true;
                    rango.WrapText       = true;
                    rango.Borders.Weight = Excel.XlBorderWeight.xlThin;

                    //Cabeceras
                    string[] cabeceras         = new string[col_section + 1];
                    double[] precios_productos = new double[col_section];

                    cabeceras[0] = (tipo == ETipoTitular.Cliente) ? "Cliente" : "Proveedor";

                    //Obtenemos los nombres de los productos y los precios de referencia
                    for (int i = 0; i < col_section; i++)
                    {
                        string cName = datos.Columns[col_index + i].ColumnName;
                        cabeceras[i + 1] = cName;
                        int pos_ini = cName.IndexOf("\nPP:") + 5;
                        int pos_fin = cName.IndexOf("\nPM:", pos_ini);
                        precios_productos[i] = Convert.ToDouble(cName.Substring(pos_ini, (pos_fin - pos_ini) + 1));
                    }

                    rango.Value2 = cabeceras;

                    //Rellenamos los datos
                    foreach (DataRow row in datos.Rows)
                    {
                        //Columna de titulares
                        string[] sTextos = new string[1];
                        sTextos[0] = row[0].ToString();

                        rango                     = GetRange(sheet, 'A', row_index, 1, false);
                        rango.ColumnWidth         = 25;
                        rango.HorizontalAlignment = Excel.XlHAlign.xlHAlignLeft;

                        rango.Value2 = sTextos;

                        //Columnas de precios
                        double[] valores = new double[col_section];
                        for (int i = 0; i < col_section; i++)
                        {
                            try
                            {
                                double d = Double.Parse(row[col_index + i].ToString());
                                valores[i] = d;
                            }
                            catch {}
                        }

                        rango             = GetRange(sheet, 'B', row_index, col_section, false);
                        rango.ColumnWidth = 9;

                        rango.Value2 = valores;

                        //Formateo de columnas de precios
                        for (int i = 0; i < col_section; i++)
                        {
                            if (row[col_index + i].ToString().Equals("-"))
                            {
                                sheet.Cells[row_index, i + 2] = "--";
                                continue;
                            }

                            rango = GetRange(sheet, (char)((int)'B' + i), row_index, 1, false);

                            // Formateamos el color de la celda en función de su relación con el precio de referencia
                            if (precios_productos[i] > valores[i])
                            {
                                rango.Interior.Color = (tipo == ETipoTitular.Cliente) ? ColorTranslator.ToOle(Color.Red) : ColorTranslator.ToOle(Color.LightGreen);
                            }
                            else if (precios_productos[i] < valores[i])
                            {
                                rango.Interior.Color = (tipo == ETipoTitular.Cliente) ? ColorTranslator.ToOle(Color.LightGreen) : ColorTranslator.ToOle(Color.Red);
                            }
                            else
                            {
                                rango.Interior.Color = ColorTranslator.ToOle(Color.White);
                            }
                        }

                        row_index++;
                    }

                    row_index += 2;
                    col_index += col_section;
                }
                catch (Exception ex)
                {
                    iQExceptionHandler.TreatException(ex);
                }
            }
        }
 private void Proveedor_RB_CheckedChanged(object sender, EventArgs e)
 {
     _tipo             = (Proveedor_RB.Checked) ? ETipoTitular.Proveedor : ETipoTitular.Cliente;
     Fechas_GB.Enabled = !Proveedor_RB.Checked;
 }