コード例 #1
0
        public Boolean ValidarSDA(Entities.NaveViaje ItemNaveViaje, System.Data.DataTable DTMensaje)
        {
            Boolean _isCorrect     = true;
            String  m_mensajeError = String.Empty;

            if (String.IsNullOrEmpty(ItemNaveViaje.NVIA_NroManifiesto))
            {
                _isCorrect      = false;
                m_mensajeError += "* Debe ingresar el año de manifiesto de la Nave Viaje" + Environment.NewLine;
            }
            else
            {
                if (ItemNaveViaje.NVIA_NroManifiesto.Length < 5)
                {
                    _isCorrect      = false;
                    m_mensajeError += "* Debe ingresar el año de manifiesto de la Nave Viaje" + Environment.NewLine;
                }
            }
            if (DTMensaje != null && DTMensaje.Rows.Count > 0)
            {
                foreach (System.Data.DataRow _MSM in DTMensaje.Rows)
                {
                    _isCorrect      = false;
                    m_mensajeError += Convert.ToString(_MSM["MENSAJE"]) + Environment.NewLine;
                }
            }
            if (!_isCorrect)
            {
                Infrastructure.WinForms.Controls.Dialogos.MostrarMensajeInformacion(Title, "Faltan ingresar algunos datos", m_mensajeError);
            }
            return(_isCorrect);
        }
コード例 #2
0
        private void SetDatosViaje(Entities.NaveViaje ItemViaje)
        {
            try
            {
                txaNVIA_Codigo.AyudaValueChanged   -= txaNVIA_Codigo_AyudaValueChanged;
                txaNVIA_NroViaje.AyudaValueChanged -= txaNVIA_NroViaje_AyudaValueChanged;

                txaNVIA_Codigo.LoadNaveViaje(ItemViaje.NVIA_Codigo);
                txaNVIA_NroViaje.LoadNaveViaje(ItemViaje.NVIA_Codigo);
                txtNAVE_Nombre.Text               = ItemViaje.NAVE_Nombre;
                txtENTC_NomTransportista.Text     = ItemViaje.ENTC_NomTransp;
                cmbTIPO_CodTRF.TiposSelectedValue = ItemViaje.TIPO_CodTRF;

                txaNVIA_Codigo.AyudaValueChanged   += txaNVIA_Codigo_AyudaValueChanged;
                txaNVIA_NroViaje.AyudaValueChanged += txaNVIA_NroViaje_AyudaValueChanged;
            }
            catch (Exception)
            { }
        }
コード例 #3
0
 private void ProcesarAsientos()
 {
     try
     {
         if (BSItems != null && BSItems.DataSource != null)
         {
             grdItems.EndEdit();
             Presenter.ItemsNaveViaje = new ObservableCollection <Entities.NaveViaje>();
             foreach (DataRow item in ((DataTable)BSItems.DataSource).Rows)
             {
                 if (((Boolean)item["Seleccionar"]))
                 {
                     Entities.NaveViaje _naveviaje = new Entities.NaveViaje();
                     _naveviaje.NVIA_Codigo  = Int32.Parse(item["NVIA_Codigo"].ToString());
                     _naveviaje.AUDI_UsrCrea = Presenter.Session.UserName;
                     _naveviaje.SUCR_Codigo  = Delfin.Controls.Entorno.ItemSucursal.SUCR_Codigo;
                     _naveviaje.EMPR_Codigo  = Delfin.Controls.Entorno.ItemEmpresa.EMPR_Codigo;
                     Presenter.ItemsNaveViaje.Add(_naveviaje);
                 }
             }
             if (Presenter.ItemsNaveViaje.Count > 0)
             {
                 if (Presenter.ProcesarAsiento())
                 {
                     Infrastructure.WinForms.Controls.Dialogos.MostrarMensajeSatisfactorio(Presenter.Title, "Se ha Procesado Satisfactoriamente");
                     Presenter.Actualizar();
                 }
                 else
                 {
                     Infrastructure.WinForms.Controls.Dialogos.MostrarMensajeInformacion(Presenter.Title, "No se procesaron registros validos");
                 }
             }
             else
             {
                 Infrastructure.WinForms.Controls.Dialogos.MostrarMensajeInformacion(Presenter.Title, "No se ha seleccionado ningun registro para ser procesado");
             }
         }
     }
     catch (Exception ex)
     { Infrastructure.WinForms.Controls.Dialogos.MostrarMensajeError(Presenter.Title, "Ha ocurrido un error, no se puede procesar la solicitud de generar asientos.", ex); }
 }
コード例 #4
0
        public void Cargar(Entities.NaveViaje ItemNaveViaje, Boolean ChangeControl)
        {
            try
            {
                Int16            EMPR_Codigo = Controls.Entorno.ItemEmpresa.EMPR_Codigo;
                Int16            SUCR_Codigo = Controls.Entorno.ItemSucursal.SUCR_Codigo;
                Int32            NVIA_Codigo = ItemNaveViaje.NVIA_Codigo;
                Nullable <Int16> CCOT_Tipo   = null;
                Nullable <Int32> CCOT_Numero = null;
                String           Usuario     = Session.UserName;


                var _itemTipoCambio = Client.GetOneTiposCambio(Session.Fecha.ToString("yyyyMMdd"));
                if (_itemTipoCambio != null)
                {
                    System.Data.DataTable dtStatment = Client.OPE_GetCab_Cotizacion_OVStatment(EMPR_Codigo, SUCR_Codigo, NVIA_Codigo, CCOT_Tipo, CCOT_Numero, Usuario, _itemTipoCambio.TIPC_Venta, ChangeControl, false);

                    if (dtStatment != null && dtStatment.Rows.Count > 0)
                    {
                        Infrastructure.WinForms.Controls.ExportarExcel.Export(dtStatment);
                    }
                    else
                    {
                        Infrastructure.WinForms.Controls.Dialogos.MostrarMensajeInformacion(Title, "No se han encontrado registros para emitir el Statment");
                    }
                }
                else
                {
                    Infrastructure.WinForms.Controls.Dialogos.MostrarMensajeInformacion(Title, "Debe ingresar el Tipo de Cambio para la fecha " + Session.Fecha.ToShortDateString());
                }
            }
            catch (Exception ex)
            {
                Infrastructure.WinForms.Controls.Dialogos.MostrarMensajeError(Title, Infrastructure.Aspect.Constants.Mensajes.NewPresenter, ex);
            }
        }
コード例 #5
0
        public void CargarTeledespacho(Entities.NaveViaje ItemNaveViaje)
        {
            try
            {
                Int32 NVIA_Codigo             = ItemNaveViaje.NVIA_Codigo;
                System.Data.DataSet dsEmision = Client.GetAllNaveViajeEmisionAduanaTeledespacho(NVIA_Codigo);

                if (VerificaParametros())
                {
                    if (ValidarTeledespacho(dsEmision.Tables["MSM"]))
                    {
                        String _Ruta = EligeRuta(false, true);
                        if (Directory.Exists(_Ruta))
                        {
                            String _path = String.Empty;
                            if (String.IsNullOrEmpty(ItemNaveViaje.NAVE_Nombre))
                            {
                                _path = _Ruta + "\\" + "Teledespacho_" + ItemNaveViaje.NVIA_NroViaje.Trim() + ".txt";
                            }
                            else
                            {
                                _path = _Ruta + "\\" + "Teledespacho_" + ItemNaveViaje.NAVE_Nombre.Trim() + "_" + ItemNaveViaje.NVIA_NroViaje.Trim() + ".txt";
                            }

                            using (StreamWriter _writer = new StreamWriter(_path))
                            {
                                _writer.WriteLine(dsEmision.Tables["MAN"].Rows[0]["Valor"].ToString());

                                foreach (System.Data.DataRow _MBL in dsEmision.Tables["BLM"].Rows)
                                {
                                    _writer.WriteLine(_MBL["Valor"].ToString());

                                    String _filtroMBL = "DOOV_MBL = '" + _MBL["DOOV_MBL"].ToString() + "'";

                                    dsEmision.Tables["BLH"].DefaultView.RowFilter = _filtroMBL;
                                    foreach (System.Data.DataRow _HBL in dsEmision.Tables["BLH"].DefaultView.ToTable().Rows)
                                    {
                                        _writer.WriteLine(_HBL["Valor"].ToString());

                                        String _filtroHBL = "DOOV_HBL = '" + _HBL["DOOV_HBL"].ToString() + "'";

                                        dsEmision.Tables["ENT"].DefaultView.RowFilter = _filtroHBL;
                                        foreach (System.Data.DataRow _ENT in dsEmision.Tables["ENT"].DefaultView.ToTable().Rows)
                                        {
                                            _writer.WriteLine(_ENT["Valor"].ToString());
                                        }

                                        dsEmision.Tables["DET"].DefaultView.RowFilter = _filtroHBL;
                                        foreach (System.Data.DataRow _DET in dsEmision.Tables["DET"].DefaultView.ToTable().Rows)
                                        {
                                            _writer.WriteLine(_DET["Valor"].ToString());
                                        }
                                    }
                                }
                            }
                            System.Diagnostics.ProcessStartInfo _app = new System.Diagnostics.ProcessStartInfo(_path, "");
                            System.Diagnostics.Process.Start(_app);
                            GenerarEventosTareas("Se Generó Archivo para la Emisión de Teledespacho", PARA_EMISION_TELEDESPACHO.PARA_Valor, dsEmision.Tables["OVs"]);
                        }
                        else
                        {
                            Infrastructure.WinForms.Controls.Dialogos.MostrarMensajeInformacion(Title, "La Ruta No Existe en este Ordenador Verifique sus Parametros");
                        }
                    }
                }
            }
            catch (Exception ex)
            { Infrastructure.WinForms.Controls.Dialogos.MostrarMensajeError(Title, Infrastructure.Aspect.Constants.Mensajes.NewPresenter, ex); }
        }
コード例 #6
0
        public void Cargar(Entities.NaveViaje ItemNaveViaje, string Formato)

        {
            try

            {
                Int32 NVIA_Codigo = ItemNaveViaje.NVIA_Codigo;

                System.Data.DataSet dsEmision = Client.GetAllNaveViajeEmisionAduana(NVIA_Codigo, Formato);

                if (VerificaParametros())

                {
                    if (ValidarSDA(ItemNaveViaje, dsEmision.Tables["MSM"]))

                    {
                        String _Ruta = EligeRuta(true, false);

                        //_Ruta = @"D:\\TCI-SUNAT\\InterfazTCI-FW-SDA";

                        if (Directory.Exists(_Ruta))

                        {
                            String _path = String.Empty;
                            if (Formato != "0471" && Formato != "0171")
                            {
                                if (String.IsNullOrEmpty(ItemNaveViaje.NAVE_Nombre))

                                {
                                    _path = _Ruta + "\\" + "CargaNet_Manifiesto_CargaSueltaSDA_" + ItemNaveViaje.NVIA_NroViaje.Trim() + ".txt";
                                }

                                else

                                {
                                    _path = _Ruta + "\\" + "CargaNet_Manifiesto_CargaSueltaSDA_" + ItemNaveViaje.NAVE_Nombre.Trim() + "_" + ItemNaveViaje.NVIA_NroViaje.Trim() + ".txt";
                                }
                            }
                            else
                            {
                                if (String.IsNullOrEmpty(ItemNaveViaje.NAVE_Nombre))

                                {
                                    _path = _Ruta + "\\" + "CargaNet_ReservaCarga_" + ItemNaveViaje.NVIA_NroViaje.Trim() + ".txt";
                                }

                                else

                                {
                                    _path = _Ruta + "\\" + "CargaNet_ReservaCarga_" + ItemNaveViaje.NAVE_Nombre.Trim() + "_" + ItemNaveViaje.NVIA_NroViaje.Trim() + ".txt";
                                }
                            }


                            using (StreamWriter _writer = new StreamWriter(_path))

                            {
                                if (Formato != "0471" && Formato != "0171")

                                {
                                    _writer.WriteLine(dsEmision.Tables["CAB"].Rows[0]["Valor"].ToString());

                                    _writer.WriteLine(dsEmision.Tables["MAN"].Rows[0]["Valor"].ToString());



                                    foreach (System.Data.DataRow _MBL in dsEmision.Tables["BLM"].Rows)

                                    {
                                        _writer.WriteLine(_MBL["Valor"].ToString());



                                        String _filtroMBL = "DOOV_MBL = '" + _MBL["DOOV_MBL"].ToString() + "'";



                                        dsEmision.Tables["BLH"].DefaultView.RowFilter = _filtroMBL;

                                        foreach (System.Data.DataRow _HBL in dsEmision.Tables["BLH"].DefaultView.ToTable().Rows)

                                        {
                                            _writer.WriteLine(_HBL["Valor"].ToString());



                                            String _filtroHBL = "DOOV_HBL = '" + _HBL["DOOV_HBL"].ToString() + "'";

                                            String _filtroHBLDET = "DOOV_HBL = '" + _HBL["DOOV_HBL"].ToString() + "' AND  DOOV_Tipo = '" + _HBL["DOOV_Tipo"].ToString() + "'";

                                            dsEmision.Tables["ENT"].DefaultView.RowFilter = _filtroHBL;

                                            foreach (System.Data.DataRow _ENT in dsEmision.Tables["ENT"].DefaultView.ToTable().Rows)

                                            {
                                                _writer.WriteLine(_ENT["Valor"].ToString());
                                            }



                                            dsEmision.Tables["DET"].DefaultView.RowFilter = _filtroHBLDET;

                                            foreach (System.Data.DataRow _DET in dsEmision.Tables["DET"].DefaultView.ToTable().Rows)

                                            {
                                                _writer.WriteLine(_DET["Valor"].ToString());
                                            }
                                        }
                                    }

                                    System.Diagnostics.ProcessStartInfo _app = new System.Diagnostics.ProcessStartInfo(_path, "");

                                    System.Diagnostics.Process.Start(_app);

                                    GenerarEventosTareas("Se Generó Archivo para la Emisión de SDA", PARA_EMISION_SDA.PARA_Valor, dsEmision.Tables["OVs"]);
                                }

                                else

                                {
                                    _writer.WriteLine(dsEmision.Tables["CAB"].Rows[0]["Valor"].ToString());

                                    // _writer.WriteLine(dsEmision.Tables["MAN"].Rows[0]["Valor"].ToString());



                                    foreach (System.Data.DataRow _MBL in dsEmision.Tables["BLS"].Rows)

                                    {
                                        String _filtroMBL = "DOOV_MBL = '" + _MBL["DOOV_MBL"].ToString() + "'";



                                        dsEmision.Tables["RVC"].DefaultView.RowFilter = _filtroMBL;

                                        foreach (System.Data.DataRow _HBL in dsEmision.Tables["RVC"].DefaultView.ToTable().Rows)

                                        {
                                            _writer.WriteLine(_HBL["Valor"].ToString());

                                            _writer.WriteLine(_MBL["Valor"].ToString());

                                            String _filtroHBL = "DOOV_MBL = '" + _HBL["DOOV_MBL"].ToString() + "'";

                                            String _filtroHBLDET = "DOOV_HBL = '" + _HBL["DOOV_HBL"].ToString() + "' AND  DOOV_Tipo = '" + _HBL["DOOV_Tipo"].ToString() + "'";

                                            dsEmision.Tables["ENT"].DefaultView.RowFilter = _filtroHBL;

                                            foreach (System.Data.DataRow _ENT in dsEmision.Tables["ENT"].DefaultView.ToTable().Rows)

                                            {
                                                _writer.WriteLine(_ENT["Valor"].ToString());
                                            }



                                            dsEmision.Tables["CNT"].DefaultView.RowFilter = _filtroHBLDET;

                                            foreach (System.Data.DataRow _DET in dsEmision.Tables["CNT"].DefaultView.ToTable().Rows)

                                            {
                                                _writer.WriteLine(_DET["Valor"].ToString());
                                            }
                                        }
                                    }

                                    System.Diagnostics.ProcessStartInfo _app = new System.Diagnostics.ProcessStartInfo(_path, "");

                                    System.Diagnostics.Process.Start(_app);

                                    GenerarEventosTareas("Se Generó Archivo para la Reserva de Carga", PARA_EMISION_RESERVA.PARA_Valor, dsEmision.Tables["OVs"]);
                                }
                            }
                        }

                        else

                        {
                            Infrastructure.WinForms.Controls.Dialogos.MostrarMensajeInformacion(Title, "La Ruta No Existe en este Ordenador Verifique sus Parametros");
                        }
                    }
                }
            }

            catch (Exception ex)

            { Infrastructure.WinForms.Controls.Dialogos.MostrarMensajeError(Title, Infrastructure.Aspect.Constants.Mensajes.NewPresenter, ex); }
        }
コード例 #7
0
        public void ImprimirGuiaAerea(Entities.Entidad ItemShipper, Entities.Entidad ItemConsignee, Entities.Entidad ItemAgente, Entities.Entidad ItemTransportista, Entities.Entidad ItemEmpresa, Entities.Puerto ItemPuertoOrigen, Entities.Puerto ItemPuertoDestino, Entities.NaveViaje ItemNaveViaje, String DatosShipper, String DatosConsignee)
        {
            try
            {
                StringBuilder _writer = new StringBuilder();

                String _linea = "";

                Int32 _margenleft = 9;
                Int32 _maxlength  = 135;

                //_writer.AppendLine("        10        20        30        40        50        60        70        80        90       100       110       120       130       140       150");
                //_writer.AppendLine("123456789|123456789|123456789|123456789|123456789|123456789|123456789|123456789|123456789|123456789|123456789|123456789|123456789|123456789|123456789|");

                //_writer.AppendLine();
                LineasEnBlanco(7, ref _writer);

                _linea  = "";
                _linea += "".PadRight(_margenleft);
                _linea += "".PadRight(12);
                _linea += (!String.IsNullOrEmpty(Item.DOOV_MBL) ? Item.DOOV_MBL : "").PadRight(90);
                _linea  = _linea.Substring(0, 75);
                _linea += (!String.IsNullOrEmpty(Item.DOOV_HBL) ? Item.DOOV_HBL : "");
                _linea += "".PadRight(_maxlength);
                _linea  = _linea.Substring(0, _maxlength);
                _writer.AppendLine(_linea);

                LineasEnBlanco(1, ref _writer);

                int _cont = 0;

                /* Shipper  & Empresa */
                String        DatosEmpresa       = (ItemEmpresa != null ? ItemEmpresa.ENTC_NomCompleto : "") + "\n";
                List <String> x_DireccionEmpresa = ObtenerLineas(ItemEmpresa.DIRE_Direccion, 40);
                foreach (String x_Cadena in x_DireccionEmpresa)
                {
                    DatosEmpresa += x_Cadena + "\n";
                }
                DatosEmpresa += (ItemEmpresa != null && ItemEmpresa.DIRE_Ubigeo != null ? ItemEmpresa.DIRE_Ubigeo : "");
                String[] _DatosEmpresa = ObtenerArray(DatosEmpresa, 40, 5);
                String[] _DatosShipper = ObtenerArray(DatosShipper, 50, 5);
                _cont = 0;
                for (int i = 0; i < _DatosEmpresa.Count(); i++)
                {
                    _linea  = "";
                    _linea += "".PadRight(_margenleft);
                    _linea += (_DatosShipper[i] != null ? _DatosShipper[i] : "");
                    _linea += "".PadRight(90);
                    _linea  = _linea.Substring(0, 90);
                    _linea += (_DatosEmpresa[i] != null ? _DatosEmpresa[i] : "");
                    _linea += "".PadRight(_maxlength);
                    _linea  = _linea.Substring(0, _maxlength);
                    _writer.AppendLine(_linea);
                    _cont++;
                }

                LineasEnBlanco(8 - _cont, ref _writer);

                /* Consigne */
                String[] _DatosConsignee = ObtenerArray(DatosConsignee, 50, 5);
                _cont = 0;
                for (int i = 0; i < _DatosConsignee.Count(); i++)
                {
                    _linea  = "";
                    _linea += "".PadRight(_margenleft);
                    _linea += (_DatosConsignee[i] != null ? _DatosConsignee[i] : "");
                    _linea += "".PadRight(_maxlength);
                    _linea  = _linea.Substring(0, _maxlength);
                    _writer.AppendLine(_linea);
                    _cont++;
                }

                LineasEnBlanco(16 - _cont, ref _writer);

                _linea  = "";
                _linea += "".PadRight(_margenleft);
                _linea += (ItemPuertoOrigen != null ? ItemPuertoOrigen.PUER_Nombre : "");
                _linea += "".PadRight(76);
                _linea  = _linea.Substring(0, 76);
                _linea += "";
                _linea += "".PadRight(_maxlength);
                _linea  = _linea.Substring(0, _maxlength);
                _writer.AppendLine(_linea);

                LineasEnBlanco(2, ref _writer);

                _linea  = "";
                _linea += "".PadRight(_margenleft);
                _linea += (ItemPuertoDestino != null ? ItemPuertoDestino.PUER_CodEstandar : "");
                _linea += "".PadRight(20);
                _linea  = _linea.Substring(0, 20);
                _linea += (ItemTransportista != null ? ItemTransportista.ENTC_NomCompleto : "");
                _linea += "".PadRight(48);
                _linea  = _linea.Substring(0, 48);
                _linea += "".PadRight(75);
                _linea  = _linea.Substring(0, 75);
                _linea += Item.TIPO_DescCMND;
                _linea += "".PadRight(82);
                _linea  = _linea.Substring(0, 82);
                _linea += (Item.CCOT_PagoHBL == "P" ? "X" : "");
                _linea += "".PadRight(90);
                _linea  = _linea.Substring(0, 88);
                _linea += (Item.CCOT_PagoHBL == "C" ? "X" : "");
                _linea += "".PadRight(102);
                _linea  = _linea.Substring(0, 102);
                _linea += "NVD";
                _linea += "".PadRight(122);
                _linea  = _linea.Substring(0, 122);
                _linea += "NCV";
                _linea += "".PadRight(_maxlength);
                _linea  = _linea.Substring(0, _maxlength);
                _writer.AppendLine(_linea);

                LineasEnBlanco(2, ref _writer);

                _linea  = "";
                _linea += "".PadRight(_margenleft);
                _linea += (ItemPuertoDestino != null ? ItemPuertoDestino.PUER_Nombre : "");
                _linea += "".PadRight(45);
                _linea  = _linea.Substring(0, 45);
                _linea += (ItemNaveViaje != null ? ItemNaveViaje.NVIA_NroViaje : "");
                _linea += "".PadRight(72);
                _linea  = _linea.Substring(0, 72);
                _linea += "NIV";
                _linea += "".PadRight(_maxlength);
                _linea  = _linea.Substring(0, _maxlength);
                _writer.AppendLine(_linea);

                LineasEnBlanco(2, ref _writer);

                String        Observaciones   = String.Empty;
                List <String> x_Observaciones = ObtenerLineas(Item.CCOT_Observaciones, 125);
                foreach (String x_Cadena in x_Observaciones)
                {
                    Observaciones += x_Cadena + "\n";
                }
                String[] _Observaciones = ObtenerArray(Observaciones, 125, 2);
                for (int i = 0; i < _Observaciones.Count(); i++)
                {
                    _linea  = "";
                    _linea += "".PadRight(_margenleft);
                    _linea += (_Observaciones[i] != null ? _Observaciones[i] : "");
                    _linea += "".PadRight(_maxlength);
                    _linea  = _linea.Substring(0, _maxlength);
                    _writer.AppendLine(_linea);
                }

                LineasEnBlanco(6, ref _writer);

                Int32         _lineas        = 0;
                String        DescProducto   = String.Empty;
                List <String> x_DescProducto = ObtenerLineas(Item.ItemsDet_CNTR[0].DHBL_DescProducto, 25);
                foreach (String x_Cadena in x_DescProducto)
                {
                    DescProducto += x_Cadena + "\n";
                }
                String[] _DescProducto = ObtenerArray(DescProducto, 30, 15);
                for (int i = 0; i < _DescProducto.Count(); i++)
                {
                    if (_lineas == 0)
                    {
                        _linea  = "";
                        _linea += "".PadRight(_margenleft);
                        _linea += Convert.ToInt32(Item.ItemsDet_CNTR.Sum(dcot => dcot.DHBL_CantBultos)).ToString();
                        _linea += "".PadRight(17);
                        _linea  = _linea.Substring(0, 17);
                        _linea += Item.ItemsDet_CNTR.Sum(dcot => dcot.DHBL_PesoBruto).ToString();
                        _linea += "".PadRight(48);
                        _linea  = _linea.Substring(0, 48);

                        _linea += Item.ItemsFlete.Sum(dcot => dcot.DCOT_Cantidad).ToString();//Peso Total del Flete
                        _linea += "".PadRight(65);
                        _linea  = _linea.Substring(0, 65);
                        _linea += Item.ItemsFlete.Sum(dcot => dcot.DCOT_Bultos).ToString();// Cantidad de bultos del Flete
                        _linea += "".PadRight(81);
                        _linea  = _linea.Substring(0, 81);
                        _linea += Item.ItemsFlete.Sum(dcot => dcot.DCOT_TotalUniVenta).ToString();// Total Venta Flete
                        _linea += "".PadRight(100);
                        _linea  = _linea.Substring(0, 100);
                    }
                    else
                    {
                        _linea  = "";
                        _linea += "".PadRight(_margenleft);
                        _linea += "";
                        _linea += "".PadRight(17);
                        _linea  = _linea.Substring(0, 17);
                        _linea += "";
                        _linea += "".PadRight(48);
                        _linea  = _linea.Substring(0, 48);

                        _linea += "";//Peso Total del Flete
                        _linea += "".PadRight(65);
                        _linea  = _linea.Substring(0, 65);
                        _linea += "";// Cantidad de bultos del Flete
                        _linea += "".PadRight(81);
                        _linea  = _linea.Substring(0, 81);
                        _linea += "";// Total Venta Flete
                        _linea += "".PadRight(100);
                        _linea  = _linea.Substring(0, 100);
                    }

                    String _DescProductoFinal = (_DescProducto[i] != null ? _DescProducto[i] : "") + "".PadRight(30);
                    _linea += _DescProductoFinal.Substring(0, 30);

                    _linea += "".PadRight(_maxlength);
                    _linea  = _linea.Substring(0, _maxlength);
                    _writer.AppendLine(_linea);

                    _lineas += 1;
                }

                for (int i = 0; i < 15 - _lineas; i++)
                {
                    _writer.AppendLine();
                }

                _linea  = "";
                _linea += "".PadRight(_margenleft);
                _linea += Convert.ToInt32(Item.ItemsDet_CNTR.Sum(dcot => dcot.DHBL_CantBultos)).ToString();
                _linea += "".PadRight(17);
                _linea  = _linea.Substring(0, 17);
                _linea += Item.ItemsDet_CNTR.Sum(dcot => dcot.DHBL_PesoBruto).ToString();
                _linea += "".PadRight(81);
                _linea  = _linea.Substring(0, 81);
                _linea += Item.ItemsFlete.Sum(dcot => dcot.DCOT_TotalUniVenta).ToString();
                _linea += "".PadRight(_maxlength);
                _linea  = _linea.Substring(0, _maxlength);
                _writer.AppendLine(_linea);

                LineasEnBlanco(2, ref _writer);

                _linea  = "";
                _linea += "".PadRight(_margenleft);
                _linea += Item.ItemsFlete.Sum(dcot => dcot.DCOT_TotalUniVenta).ToString();
                _writer.Append(_linea);

                LineasEnBlanco(0, ref _writer);

                ObservableCollection <Entities.Det_Cotizacion_OV_Servicio> _ServiciosCliente = new ObservableCollection <Entities.Det_Cotizacion_OV_Servicio>();
                Int32 _lineasservicios = 0;
                foreach (Entities.Det_Cotizacion_OV_Servicio _itemDet_Cotizacion_OV_Servicio in Item.ItemsServicio)
                {
                    if (_lineasservicios < 5)
                    {
                        if (_itemDet_Cotizacion_OV_Servicio.TIPE_Codigo == Convert.ToInt16(Delfin.Controls.TiposEntidad.TIPE_Cliente))
                        {
                            if (_itemDet_Cotizacion_OV_Servicio.CCOT_IngresoGasto == "I" && !_itemDet_Cotizacion_OV_Servicio.SERV_AfeIgv && !_itemDet_Cotizacion_OV_Servicio.SCOT_Exonerado)
                            {
                                _linea  = "";
                                _linea += "".PadRight(_margenleft);
                                _linea += "".PadRight(60);
                                _linea  = _linea.Substring(0, 60);
                                String _Servico = _itemDet_Cotizacion_OV_Servicio.SERV_Nombre + "".PadRight(30);
                                _linea += _Servico.Substring(0, 30);
                                _linea += "".PadRight(5) + "USD";
                                _linea += "".PadRight(5) + _itemDet_Cotizacion_OV_Servicio.SCOT_Importe_Ingreso.ToString("#,##,##.000");
                                _linea += "".PadRight(_maxlength);
                                _linea  = _linea.Substring(0, _maxlength);
                                _writer.AppendLine(_linea);
                                _lineasservicios += 1;
                                _ServiciosCliente.Add(_itemDet_Cotizacion_OV_Servicio);
                            }
                        }
                    }
                    else
                    {
                        break;
                    }
                }

                for (int i = 0; i < 9 - _lineasservicios; i++)
                {
                    _writer.AppendLine();
                }

                _linea  = "";
                _linea += "".PadRight(_margenleft);
                _linea += (_ServiciosCliente.Sum(scot => (scot.SCOT_Importe_Egreso * -1) + scot.SCOT_Importe_Ingreso) > 0 ? _ServiciosCliente.Sum(scot => (scot.SCOT_Importe_Egreso * -1) + scot.SCOT_Importe_Ingreso).ToString("#,##,##.000") : "");
                _linea += "".PadRight(61);
                _linea  = _linea.Substring(0, 61);
                _linea += Centrar((ItemEmpresa != null ? ItemEmpresa.ENTC_NomCompleto : ""), 75);
                _linea += "".PadRight(_maxlength);
                _linea  = _linea.Substring(0, _maxlength);
                _writer.AppendLine(_linea);

                LineasEnBlanco(2, ref _writer);

                _linea  = "";
                _linea += "".PadRight(_margenleft);
                _linea += (Item.CCOT_PagoHBL == "P" && (Item.ItemsFlete.Sum(dcot => dcot.DCOT_TotalUniVenta) + _ServiciosCliente.Sum(scot => (scot.SCOT_Importe_Egreso * -1) + scot.SCOT_Importe_Ingreso)) > 0 ? (Item.ItemsFlete.Sum(dcot => dcot.DCOT_TotalUniVenta) + _ServiciosCliente.Sum(scot => (scot.SCOT_Importe_Egreso * -1) + scot.SCOT_Importe_Ingreso)).ToString("#,##,##.000") : "");
                _linea += "".PadRight(61);
                _linea  = _linea.Substring(0, 61);
                _linea += (Item.CCOT_PagoHBL == "C" && (Item.ItemsFlete.Sum(dcot => dcot.DCOT_TotalUniVenta) + _ServiciosCliente.Sum(scot => (scot.SCOT_Importe_Egreso * -1) + scot.SCOT_Importe_Ingreso)) > 0 ? (Item.ItemsFlete.Sum(dcot => dcot.DCOT_TotalUniVenta) + _ServiciosCliente.Sum(scot => (scot.SCOT_Importe_Egreso * -1) + scot.SCOT_Importe_Ingreso)).ToString("#,##,##.000") : "");
                _linea += "".PadRight(_maxlength);
                _linea  = _linea.Substring(0, _maxlength);

                LineasEnBlanco(3, ref _writer);

                _linea  = "";
                _linea += "".PadRight(_margenleft);
                _linea += "".PadRight(63);
                _linea  = _linea.Substring(0, 63);
                if (Item.CONS_CodRGM == Delfin.Controls.variables.CONSRGM_Importacion && Item.DDOV_FecEmbarque.HasValue)
                {
                    _linea += Item.DDOV_FecEmbarque.Value.ToString("dd MMMM yyyy");
                }
                if (Item.CONS_CodRGM == Delfin.Controls.variables.CONSRGM_Exportacion && ItemNaveViaje.NVIA_FecETA_IMPO_ETD_EXPO.HasValue)
                {
                    _linea += ItemNaveViaje.NVIA_FecETA_IMPO_ETD_EXPO.Value.ToString("dd MMMM yyyy");
                }
                _linea += "".PadRight(88);
                _linea  = _linea.Substring(0, 88);
                _linea += ItemPuertoOrigen.TIPO_DescPais + " " + ItemPuertoOrigen.PUER_Nombre;
                _linea += "".PadRight(_maxlength);
                _linea  = _linea.Substring(0, _maxlength);
                _writer.AppendLine(_linea);

                LineasEnBlanco(2, ref _writer);

                _linea  = "";
                _linea += "".PadRight(_margenleft);
                _linea += "".PadRight(85);
                _linea  = _linea.Substring(0, 85);
                _linea += Item.DOOV_HBL;
                _linea += "".PadRight(_maxlength);
                _linea  = _linea.Substring(0, _maxlength);
                _writer.AppendLine(_linea);

                String _printername = "";

                //string text = "A class is the most powerful data type in C#. Like a structure, " +
                //                         "a class defines the data and behavior of the data type. ";
                //// WriteAllText creates a file, writes the specified string to the file,
                //// and then closes the file.    You do NOT need to call Flush() or Close().
                //System.IO.File.WriteAllText(@"D:\WriteText.txt", _writer.ToString());

                System.Windows.Forms.PrintDialog printDialog = new System.Windows.Forms.PrintDialog();

                if (printDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    _printername = printDialog.PrinterSettings.PrinterName;
                    Print(_printername, _writer, Impresion.InterEspaciado.Ocho, 78);
                }
            }
            catch (Exception ex)
            { Infrastructure.WinForms.Controls.Dialogos.MostrarMensajeError(Title, "Ha ocurrido un error al imprimir la Guía Aérea.", ex); }
        }