예제 #1
0
        private static OtrosServicios findOtroServicio(List <OtrosServicios> lst, string nombre)
        {
            OtrosServicios o = lst.Find(p => p.Nombre.StartsWith(nombre));

            if (o == null)
            {
                o = new OtrosServicios();
            }
            return(o);
        }
예제 #2
0
        private static factura procesaHoja(Worksheet sheet)
        {
            int     fila = 0;
            factura o    = new factura();
            object  dato = null;

            #region Datos Generales
            dato = sheet.get_Range("G12", "G12").Value2;
            if (dato != null)
            {
                o.Referencia       = dato.ToString();
                o.PEntInv          = EntradaCtrl.InventarioGetCtaContable(o.Referencia);
                _maxColCuentasCont = o.PEntInv.PLstCteMercCta.Count > _maxColCuentasCont ? o.PEntInv.PLstCteMercCta.Count : _maxColCuentasCont;
            }
            #endregion

            #region Maniobra entrada y salida
            for (fila = 17; fila <= 19; fila++)
            {
                dato = sheet.get_Range("E" + fila.ToString(), "E" + fila.ToString()).Value2;
                if (dato != null)
                {
                    o.CapacidadFlete                = sheet.get_Range("B" + fila.ToString(), "B" + fila.ToString()).Value2.ToString();
                    o.ManiobraEntradaSalida         = Convert.ToDouble(sheet.get_Range("D" + fila.ToString(), "D" + fila.ToString()).Value2);
                    o.ManiobraEntradaSalidaCantidad = Convert.ToInt32(dato);
                    o.ManiobraEntradaSalidaTotal    = Convert.ToDouble(sheet.get_Range("F" + fila.ToString(), "F" + fila.ToString()).Value2);
                    break;
                }
            }
            #endregion

            #region Etiquetas aduana
            dato = sheet.get_Range("E23", "E23").Value2;
            if (dato != null)
            {
                o.Piezas19x10         = Convert.ToInt32(dato);
                o.EtiquetaAduana19x10 = Convert.ToDouble(sheet.get_Range("D23", "D23").Value2);
            }
            dato = sheet.get_Range("E27", "E27").Value2;
            if (dato != null)
            {
                o.Piezas10x10         = Convert.ToInt32(dato);
                o.EtiquetaAduana10x10 = Convert.ToDouble(sheet.get_Range("D27", "D27").Value2);
            }
            #endregion

            #region Transportes
            //Busca el inicio de la fila que contiene la información del transporte (TRANSPORTES)
            fila = 30;
            fila = getFila(fila, "B", "TRANSPORTES", sheet);
            dato = sheet.get_Range("B" + fila.ToString(), "B" + fila.ToString()).Value2;
            string tipo = string.Empty;
            //Los transportes y maniobras se van a diferenciar por la columna que le antecede T transprote, M maniobra
            object cantidad;
            while (dato != null)
            {
                tipo     = sheet.get_Range("A" + fila.ToString(), "A" + fila.ToString()).Value2;
                cantidad = sheet.get_Range("E" + fila.ToString(), "E" + fila.ToString()).Value2;
                switch (tipo)
                {
                case "T":
                    Transporte t = new Transporte(
                        Convert.ToDouble(sheet.get_Range("F" + fila.ToString(), "F" + fila.ToString()).Value2),
                        Convert.ToInt32(cantidad),
                        Convert.ToDouble(sheet.get_Range("D" + fila.ToString(), "D" + fila.ToString()).Value2.ToString()));
                    o.LstTransporte.Add(t);
                    break;

                case "M":
                    Maniobra m = new Maniobra(
                        Convert.ToDouble(sheet.get_Range("F" + fila.ToString(), "F" + fila.ToString()).Value2),
                        Convert.ToInt32(cantidad),
                        Convert.ToDouble(sheet.get_Range("D" + fila.ToString(), "D" + fila.ToString()).Value2.ToString()));
                    o.LstManiobra.Add(m);
                    break;

                default:
                    break;
                }
                fila++;
                dato = sheet.get_Range("B" + fila.ToString(), "B" + fila.ToString()).Value2;
            }

            //bool esTransporte = !dato.ToString().StartsWith("Maniobra");
            //while (esTransporte)
            //{
            //    dato = sheet.get_Range("E" + fila.ToString(), "E" + fila.ToString()).Value2;
            //    if (dato != null)
            //    {
            //        Transporte t = new Transporte(
            //            Convert.ToDouble(sheet.get_Range("F" + fila.ToString(), "F" + fila.ToString()).Value2),
            //            Convert.ToInt32(dato),
            //            getTarifaTransporte(sheet.get_Range("B" + fila.ToString(), "B" + fila.ToString()).Value2.ToString())
            //            );
            //        o.LstTransporte.Add(t);
            //    }

            //    fila++;
            //    dato = sheet.get_Range("B" + fila.ToString(), "B" + fila.ToString()).Value2;
            //    esTransporte = !dato.ToString().StartsWith("Maniobra");
            //}
            _maxColTransportes = o.LstTransporte.Count > _maxColTransportes ? o.LstTransporte.Count : _maxColTransportes;
            #endregion

            #region Maniobras
            //bool esManiobra = dato.ToString().StartsWith("Maniobra");
            //while (esManiobra)
            //{
            //    dato = sheet.get_Range("E" + fila.ToString(), "E" + fila.ToString()).Value2;
            //    if (dato != null)
            //    {
            //        Maniobra m = new Maniobra(
            //        Convert.ToDouble(sheet.get_Range("F" + fila.ToString(), "F" + fila.ToString()).Value2),
            //            Convert.ToInt32(dato),
            //            getTarifaManiobra(sheet.get_Range("B" + fila.ToString(), "B" + fila.ToString()).Value2.ToString())
            //        );
            //        o.LstManiobra.Add(m);
            //    }

            //    fila++;
            //    dato = sheet.get_Range("B" + fila.ToString(), "B" + fila.ToString()).Value2;
            //    if (dato != null)
            //        esManiobra = dato.ToString().StartsWith("Maniobra");
            //    else
            //        esManiobra = false;
            //}
            _maxColManiobras = o.LstManiobra.Count > _maxColManiobras ? o.LstManiobra.Count : _maxColManiobras;

            #endregion

            #region Otros (Parte 1)
            dato = sheet.get_Range("D" + fila.ToString(), "D" + fila.ToString()).Value2;
            if (dato == null)
            {
                dato = string.Empty;
            }
            while (!dato.ToString().StartsWith("SUBTOTAL"))
            {
                dato = sheet.get_Range("E" + fila.ToString(), "E" + fila.ToString()).Value2;
                if (dato != null)
                {
                    OtrosServicios os = new OtrosServicios();
                    os.Cantidad = Convert.ToInt32(dato);
                    os.Valor    = Convert.ToDouble(sheet.get_Range("F" + fila.ToString(), "F" + fila.ToString()).Value2);
                    os.Nombre   = sheet.get_Range("B" + fila.ToString(), "B" + fila.ToString()).Value2.ToString();
                    o.LstOtros.Add(os);
                }
                fila++;
                dato = sheet.get_Range("D" + fila.ToString(), "D" + fila.ToString()).Value2;
                if (dato == null)
                {
                    dato = string.Empty;
                }
            }
            #endregion

            #region Tarimas y Emplayado
            fila = getFila(fila, "B", "OTROS", sheet);
            dato = sheet.get_Range("E" + fila.ToString(), "E" + fila.ToString()).Value2;
            if (dato != null)
            {
                o.PTarima.Cantidad = Convert.ToInt32(dato);
                o.PTarima.Valor    = Convert.ToDouble(sheet.get_Range("D" + fila.ToString(), "D" + fila.ToString()).Value2);
            }
            fila++;
            dato = sheet.get_Range("E" + fila.ToString(), "E" + fila.ToString()).Value2;
            if (dato != null)
            {
                o.PEmplayado.Cantidad = Convert.ToInt32(dato);
                o.PEmplayado.Valor    = Convert.ToDouble(sheet.get_Range("D" + fila.ToString(), "D" + fila.ToString()).Value2);
            }
            #endregion

            #region #region Otros (Parte 2)
            fila = getFila(fila, "B", "UVA", sheet);
            dato = sheet.get_Range("D" + fila.ToString(), "D" + fila.ToString()).Value2;
            while (!dato.ToString().StartsWith("SUBTOTAL"))
            {
                dato = sheet.get_Range("E" + fila.ToString(), "E" + fila.ToString()).Value2;
                if (dato != null)
                {
                    OtrosServicios os = new OtrosServicios();
                    os.Cantidad = Convert.ToInt32(dato);
                    os.Valor    = Convert.ToDouble(sheet.get_Range("F" + fila.ToString(), "F" + fila.ToString()).Value2);
                    os.Nombre   = sheet.get_Range("B" + fila.ToString(), "B" + fila.ToString()).Value2.ToString();
                    o.LstOtros.Add(os);
                }
                fila++;
                dato = sheet.get_Range("D" + fila.ToString(), "D" + fila.ToString()).Value2;
            }

            #endregion

            #region Total

            fila = getFila(fila, "G", "GRAN TOTAL", sheet);
            fila--; //El método get fila incrementa en una unidad
            dato = sheet.get_Range("I" + fila.ToString(), "I" + fila.ToString()).Value2;
            if (dato != null)
            {
                o.Total = Convert.ToDouble(dato);
            }

            #endregion

            return(o);
        }