/// <summary> /// Procedimiento para validar los datos del número de factura. Devuelve una exepción si los datos no son válidos /// </summary> private void ValidarDatosNumeroFactura() { // Reviso si se selecciono un tipo de guía if (ddlTipoFactura.SelectedIndex == -1) { // No se selecciono throw new Exception("Debe seleccionar un tipo de factura"); } // Reviso si se ingreso un número de sucursal if (txtNroSucursalFactura.Text == "") { // No se ingreso throw new Exception("Debe ingresar un número de sucursal de la factura"); } // Reviso si el número de sucursal es válido if (Validaciones.obtieneEntero(txtNroSucursalFactura.Text) == 0) { // El número de sucursal es inválido throw new Exception("El número de sucursal de la factura es inválido"); } // Reviso si se ingreso un número de factura if (txtNroFactura.Text == "") { // No se ingreso throw new Exception("Debe ingresar un número de factura"); } // Reviso si el número de factura es válido if (Validaciones.obtieneEntero(txtNroFactura.Text) == 0) { // El número de sucursal es inválido throw new Exception("El número de factura es inválido"); } // Valido que el número de factura no se haya ingresado en las guías IGuia guia = GuiaFactory.GetGuia(); guia.TipoGuia = ddlTipoFactura.SelectedValue; guia.NroSucursalGuia = txtNroSucursalFactura.Text; guia.NroGuia = Validaciones.obtieneEntero(txtNroFactura.Text); guia.Consultar(); if (guia.GuiaID > 0) { // En número de factura ya se ingreso throw new Exception("El número de factura ya se ingreso"); } // Valido que el número de factura no se haya ingresado en las facturas IFactura factura = FacturaFactory.GetFactura(); factura.TipoGuia = ddlTipoFactura.SelectedValue; factura.NroSucursalGuia = txtNroSucursalFactura.Text; factura.NroGuia = Validaciones.obtieneEntero(txtNroFactura.Text); DsFactura dsFac = factura.GetByNroFactura(); if (dsFac.Datos.Count > 0) { // En número de factura ya se ingreso throw new Exception("El número de factura ya se ingreso"); } }
private void Page_Load(object sender, System.EventArgs e) { if (User.Identity.IsAuthenticated) { string sOpcion = "visualizarDatosFactura"; Menu oMenu = (Menu)this.FindControl("Menu1"); this.ValidarSeguridad(oMenu, sOpcion); } if (!IsPostBack) { this.txtFacturaID.Text = this.Request.QueryString["FacturaID"] == null ? "" : this.Request.QueryString["FacturaID"]; this.lblFecha.Text = DateTime.Today.ToString("dd/MM/yyyy"); IAgencia oAgencia = AgenciaFactory.GetAgencia(); oAgencia.AgenciaID = Convert.ToInt32(this.AgenciaConectadaID); oAgencia.ConsultarBasico(); this.lblAgenciaConectada.Text = oAgencia.RazonSocial; oAgencia = null; } if (this.txtFacturaID.Text != "") { facturaID = Convert.ToInt32(this.txtFacturaID.Text); IFactura datosFactura = FacturaFactory.GetFactura(); datosFactura.FacturaID = facturaID; dsDatosFactura = (DsFacturaCompleta)datosFactura.GetFacturaByFacturaID(); this.Editar(); } }
private DsFactura BuscarFacturaPorTipo() { //Habilito los validadores para el buscar BaseValidator bv; bv = (BaseValidator)this.phValidTipoGuia.FindControl("validTipoGuia"); bv.Enabled = true; bv.Validate(); if (!bv.IsValid) { return(null); } bv = (BaseValidator)this.phValidNroSucursal.FindControl("validNroSucursal"); bv.Enabled = true; bv.Validate(); if (!bv.IsValid) { return(null); } bv = (BaseValidator)this.phValidNroSucursal.FindControl("validNroSucursalInv"); bv.Enabled = true; bv.Validate(); if (!bv.IsValid) { return(null); } bv = (BaseValidator)this.phValidNroGuia.FindControl("validNroGuia"); bv.Enabled = true; bv.Validate(); if (!bv.IsValid) { return(null); } bv = (BaseValidator)this.phValidNroGuia.FindControl("validNroGuiaInv"); bv.Enabled = true; bv.Validate(); if (!bv.IsValid) { return(null); } IFactura factura = FacturaFactory.GetFactura(); factura.TipoGuia = this.ddlTipoGuia.SelectedValue; factura.NroSucursalGuia = this.txtNroSucursal.Text == "" ? "0" : this.txtNroSucursal.Text; factura.NroGuia = this.txtNroGuia.Text == "" ? 0 : Convert.ToInt32(this.txtNroGuia.Text); return(factura.GetByNroFactura()); }
private void BindGrilla() { SisPackController.AdministrarGrillas.Configurar(this.dtgComisiones, "EntidadComisionDescrip", this.CantidadOpciones, true, true); if (!this.txtFacturaID.Text.Equals("")) { IFactura factura = FacturaFactory.GetFactura(); factura.FacturaID = Convert.ToInt32(this.txtFacturaID.Text); this.dtgComisiones.DataSource = factura.GetComisionesByFacturaID(); } else { IGuia guia = GuiaFactory.GetGuia(); guia.GuiaID = this.txtGuiaID.Text == "" ? 0 : Convert.ToInt32(this.txtGuiaID.Text); this.dtgComisiones.DataSource = guia.GetComisionesByGuiaID(); } this.dtgComisiones.DataBind(); }
protected void btnEmitir_Click(object sender, EventArgs e) { try { // Valido los datos if (ValidarEmision()) { // Cargo los datos a guardar IFactura factura = FacturaFactory.GetFactura(); factura.GuiaID = GuiaID; factura.ClienteID = ClienteFacturacion1.ClienteCorporativoID ?? 0; factura.ClienteEventualID = ClienteFacturacion1.ClienteEventualID ?? 0; factura.AgenciaID = AgenciaConectadaID; factura.UnidadNegocioID = UnidadNegocioID; factura.CondicionIVAAgentePago = ClienteFacturacion1.CondicionIVA ?? 0; factura.NroCUITAgentePago = ClienteFacturacion1.NroCUIT; if (rbtContado.Checked) { factura.CondicionPagoID = (Int32)NegociosSisPackInterface.SisPack.CondicionPago.Contado; } else if (rbtCtaCte.Checked) { factura.CondicionPagoID = (Int32)NegociosSisPackInterface.SisPack.CondicionPago.CuentaCorriente; } else if (rbtPagoEnDestino.Checked) { factura.CondicionPagoID = (Int32)NegociosSisPackInterface.SisPack.CondicionPago.PagoEnDestino; } else { factura.CondicionPagoID = (Int32)NegociosSisPackInterface.SisPack.CondicionPago.TarjCredDeb; } factura.UsuarioIDAlta = usuario.UsuarioID; factura.ClienteEventual = ClienteFacturacion1.ClienteEventual; if (rbtTarjetaDeCredito.Checked) { Int32 _auxTarjeta; if (Int32.TryParse(txtNroLote.Text, out _auxTarjeta)) { factura.NroLoteTarjeta = _auxTarjeta; } if (Int32.TryParse(txtNroCupon.Text, out _auxTarjeta)) { factura.NroCuponTarjeta = _auxTarjeta; } } if (txtObservaciones.Text.Length > 500) { txtObservaciones.Text = txtObservaciones.Text.Substring(0, 500); } factura.Observaciones = txtObservaciones.Text; factura.NroRemitoCliente = txtNroRemitoCliente.Text.Trim(); factura.NroFacturaCliente = txtNroFacturaCliente.Text.Trim(); factura.NroHojaRutaCliente = txtNroHojaRutaCliente.Text.Trim(); IFacturaDetalle detalle = FacturaDetalleFactory.GetFacturaDetalle(); detalle.ConceptoFacturacionID = Convert.ToInt32(ddlConceptoFacturacion.SelectedValue); if (txtTope.Text != "") { detalle.Tope = Convert.ToDouble(txtTope.Text);//.Replace(".",",")); } if (txtCodigoBarras.Text != "") { detalle.CodigoBarras = txtCodigoBarras.Text.Trim();//.Replace(".",",")); } factura.DetalleFactura.Add(detalle); factura.ValidarCredito(); factura.ValidarCodigosDeBarra(); string _tipoGuia = factura.DeterminarTipoFacturaConceptoFacturacion(); factura.TipoGuia = _tipoGuia; // Reviso si tengo que determinar la empresa de facturación if (_tipoGuia == "A" || _tipoGuia == "B") { try { int _empresaFacturacionID = factura.DeterminarEmpresaFacturacionConceptoFacturacion(); factura.EmpresaFacturacionID = _empresaFacturacionID; factura.CargarInfoComprobante(); factura.CalcularImporteConceptoFacturacion(); /*****************************************************************/ //ws = Session["WSFactElect"] as SisPack.WSFEL.FEService; //if (ws == null) //{ // // create the proxy // //MyService = new localhost.MyDemo(); // ws = new SisPack.WSFEL.FEService(); // // create a container for the SessionID cookie // ws.CookieContainer = new CookieContainer(); // // store it in Session for next usage // Session["WSFactElect"] = ws; // ws.Inicializar(long.Parse(CUITExpress), NombreCertificadoExpress, Ambiente); // // ws.Inicializar(long.Parse(CUITCargas), NombreCertificadoCargas, Ambiente); //} IAFIP afip = AFIPFactory.GetAFIP(); string referencia = string.Empty; //string sError = string.Empty; //DateTime sVencimientoCae = new DateTime(); // Detalles detalleFE = new Detalles(); int puntoVta = int.Parse(factura.NroSucursalGuia); int tipoCbe = 6; int tipoDocumento = 96; long numeroDocumento = 30414121; int tipoConcepto = 2; double total = factura.ImporteTotal; double totalConcepto = 0; double neto = factura.ImporteNeto; double exento = 0; double totalTributos = 0; double totalIva = factura.ImporteIVA; int tipoIva = 5; long nroFactura = 0; if (factura.TipoGuia == "A") { tipoCbe = 1; //Factura A numeroDocumento = long.Parse(factura.ClienteEventual.NroCuit); if ((int)factura.ClienteEventual.TipoDocumentoCuit == 5) { tipoDocumento = 80; //CUIT } else if ((int)factura.ClienteEventual.TipoDocumentoCuit == 6) { tipoDocumento = 86; //CUIL } else { tipoDocumento = 91; //91 } } else { tipoCbe = 6; //Factura B numeroDocumento = long.Parse(factura.ClienteEventual.NroDocumento.ToString()); if ((int)factura.ClienteEventual.TipoDocumento == 1) { tipoDocumento = 96; //DNI } else if ((int)factura.ClienteEventual.TipoDocumento == 2) { tipoDocumento = 90; //LC } else if ((int)factura.ClienteEventual.TipoDocumento == 3) { tipoDocumento = 89; //LE } else if ((int)factura.ClienteEventual.TipoDocumento == 4) { tipoDocumento = 94; //Pasaporte } else if ((int)factura.ClienteEventual.TipoDocumento == 6) { tipoDocumento = 86; //CUIL } else { tipoDocumento = 91; //91 } } string fechaFE = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString("00") + DateTime.Now.Day.ToString("00"); if (totalIva == 0) { tipoIva = 3; //Iva 0 } //detalleFE.Ivas.AddIvasRow(tipoIva, neto, totalIva); if (factura.EmpresaFacturacionID == 1) { //nroFactura = ws.ObtieneUltimoNroCbte(puntoVta, tipoCbe, long.Parse(CUITExpress)) + 1; //factura.NumeroCAE = ws.ObtenerCAE(1, 1, puntoVta, tipoCbe, tipoConcepto, tipoDocumento, numeroDocumento, nroFactura, nroFactura, fechaFE, // total, totalConcepto, neto, exento, totalTributos, totalIva, fechaFE, fechaFE, fechaFE, "PES", 1, detalleFE, ref sError, ref sVencimientoCae, long.Parse(CUITExpress)); if (afip.ObtieneUltimoNroCbte(puntoVta, tipoCbe, long.Parse(CUITExpress), NombreCertificadoExpress, Ambiente)) { nroFactura = afip.NumeroFactura; if (afip.ObtenerCAE(puntoVta, tipoCbe, long.Parse(CUITExpress), NombreCertificadoExpress, Ambiente, tipoConcepto, tipoDocumento, numeroDocumento, nroFactura, fechaFE, total, totalConcepto, neto, exento, totalTributos, totalIva, tipoIva)) { factura.NumeroCAE = afip.NumeroCAE; } } } else { //nroFactura = ws.ObtieneUltimoNroCbte(puntoVta, tipoCbe, long.Parse(CUITCargas)) + 1; //factura.NumeroCAE = ws.ObtenerCAE(1, 1, puntoVta, tipoCbe, tipoConcepto, tipoDocumento, numeroDocumento, nroFactura, nroFactura, fechaFE, // total, totalConcepto, neto, exento, totalTributos, totalIva, fechaFE, fechaFE, fechaFE, "PES", 1, detalleFE, ref sError, ref sVencimientoCae, long.Parse(CUITCargas)); } //if (sError.Contains("10016-El número o fecha del comprobante no se corresponde con el próximo a autorizar.")) if (afip.errorCAE.Contains("10016-El número o fecha del comprobante no se corresponde con el próximo a autorizar.")) { //verifico nuevamente por si alguien estaba usando ese numero if (factura.EmpresaFacturacionID == 1) { //nroFactura = ws.ObtieneUltimoNroCbte(puntoVta, tipoCbe, long.Parse(CUITExpress)) + 1; //factura.NumeroCAE = ws.ObtenerCAE(1, 1, puntoVta, tipoCbe, tipoConcepto, tipoDocumento, numeroDocumento, nroFactura, nroFactura, fechaFE, // total, totalConcepto, neto, exento, totalTributos, totalIva, fechaFE, fechaFE, fechaFE, "PES", 1, detalleFE, ref sError, ref sVencimientoCae, long.Parse(CUITExpress)); if (afip.ObtieneUltimoNroCbte(puntoVta, tipoCbe, long.Parse(CUITExpress), NombreCertificadoExpress, Ambiente)) { nroFactura = afip.NumeroFactura; if (afip.ObtenerCAE(puntoVta, tipoCbe, long.Parse(CUITExpress), NombreCertificadoExpress, Ambiente, tipoConcepto, tipoDocumento, numeroDocumento, nroFactura, fechaFE, total, totalConcepto, neto, exento, totalTributos, totalIva, tipoIva)) { factura.NumeroCAE = afip.NumeroCAE; } } } else { //nroFactura = ws.ObtieneUltimoNroCbte(puntoVta, tipoCbe, long.Parse(CUITCargas)) + 1; //factura.NumeroCAE = ws.ObtenerCAE(1, 1, puntoVta, tipoCbe, tipoConcepto, tipoDocumento, numeroDocumento, nroFactura, nroFactura, fechaFE, // total, totalConcepto, neto, exento, totalTributos, totalIva, fechaFE, fechaFE, fechaFE, "PES", 1, detalleFE, ref sError, ref sVencimientoCae, long.Parse(CUITCargas)); } if (afip.errorCAE != string.Empty) { using (System.IO.StreamWriter archivo = System.IO.File.AppendText(@"C:\log\LogEmisionConcepto.log")) { archivo.WriteLine("EmisionConceptoFacturacion.aspx.cs linea 815-------------------------------------------------------------------------------------"); archivo.WriteLine("--------------------------------------------------------------------------------------"); } factura.EmitirFacturaConceptoFacturacion(null); } else { //factura.FechaCae = sVencimientoCae; factura.FechaCae = afip.fechaCAE; factura.NroGuia = int.Parse(nroFactura.ToString()); factura.EmitirFacturaConceptoFacturacionFE(null); } } else if (afip.errorCAE != string.Empty || (afip.errorCAE == string.Empty && factura.NumeroCAE == string.Empty)) { using (System.IO.StreamWriter archivo = System.IO.File.AppendText(@"C:\log\LogEmisionConcepto.log")) { archivo.WriteLine("EmisionConceptoFacturacion.aspx.cs linea 832-------------------------------------------------------------------------------------"); archivo.WriteLine("--------------------------------------------------------------------------------------"); } //Paso a la modalidad autoimpresor factura.EmitirFacturaConceptoFacturacion(null); } else { //factura.FechaCae = sVencimientoCae; factura.FechaCae = afip.fechaCAE; factura.NroGuia = int.Parse(nroFactura.ToString()); factura.EmitirFacturaConceptoFacturacionFE(null); } } catch (Exception ex) { using (System.IO.StreamWriter archivo = System.IO.File.AppendText(@"C:\log\LogEmisionConcepto.log")) { archivo.WriteLine("EmisionConceptoFacturacion.aspx.cs linea 850-------------------------------------------------------------------------------------"); archivo.WriteLine("--------------------------------------------------------------------------------------"); } factura.EmitirFacturaConceptoFacturacion(null); } /*****************************************************************/ } else { factura.EmitirFacturaConceptoFacturacion(null); } // Cargo los datos para imprimir IAgencia agencia = AgenciaFactory.GetAgencia(); txtPaginaImpresion.Value = agencia.GetPaginaImpresion(factura.TipoImpresionGuiaID, Implementacion); txtFacturaID.Value = factura.FacturaID.ToString(); //if (factura.ImportePercepcion != 0) //{ // int facturaid = factura.FacturaID; // //guardar en una tabla nueva la guiaid, percepcionid, percpecion importe. // //parte de inserrtar el origen // IPercepcionDominio _perDominio = IoC.GetObjectDominio<IPercepcionDominio>(); // List<Dominio.Entidades.GetOnePercepcionDatos> lstPerOrigen = _perDominio.PercepcionGetAllBYAgOri(this.AgenciaConectadaID); // if (lstPerOrigen.Count > 0) // { // _perDominio.InsertPercepcionFactura(lstPerOrigen[0].PercepcionID, facturaid, Convert.ToDouble(lstPerOrigen[0].PorcentajeImporte), "Origen", factura.ImportePercepcion); // } //} //guardar el mail if (txtFacturaID.Value != "0") { this.GuardarMail(Convert.ToInt32(txtFacturaID.Value)); } Session["DatosGuia"] = ToDsGuiaFacturaImpresion(factura.GetFacturaConceptoImpresionByFacturaID()); } } catch (Exception ex) { if (ex.Message.Contains("Datos inválidos:")) { throw ex; } else { throw new Exception("Error al guardar factura"); } } }
private void ImprimirGuia(int GuiaID, NegociosSisPackInterface.SisPack.ClasificacionGuia ClasificacionGuia) { try { IGuia oGuia = GuiaFactory.GetGuia(); IFactura oFactura = FacturaFactory.GetFactura(); DsGuias ds = new DsGuias(); DsFactura dsFacturas = null; DsGuiaFacturaImpresion dsFacturaImpresion; IAgencia agencia = null; oGuia.GuiaID = GuiaID; if (ClasificacionGuia == NegociosSisPackInterface.SisPack.ClasificacionGuia.Remito) { ds = oGuia.GetGuiaOneDataSet(); } else if (ClasificacionGuia == NegociosSisPackInterface.SisPack.ClasificacionGuia.Factura) { oFactura.FacturaID = GuiaID; dsFacturas = oFactura.GetFacturaByFacturaID(GuiaID); } if (ds.Datos.Count > 0) { DsGuias.DatosRow dr = (DsGuias.DatosRow)ds.Datos.Rows[0]; /* Traer datos de impresión. */ agencia = AgenciaFactory.GetAgencia(); agencia.AgenciaID = dr.AgenciaOrigenID; agencia.ConsultarBasico(); dr = null; /* Traer los datos de la guía para la impresión. */ IAdministrarGuias oAdminGuia = AdministrarGuiasFactory.GetAdministrarGuias(); oAdminGuia.GuiaID = GuiaID; dsFacturaImpresion = oAdminGuia.GetDataSetImpresionByGuiaID(); oAdminGuia = null; Session["DatosGuia"] = dsFacturaImpresion; /*************************************************/ } else if (ds.Datos.Count == 0) { if (dsFacturas.Datos.Count > 0) { DsFactura.DatosRow drFac = (DsFactura.DatosRow)dsFacturas.Datos.Rows[0]; //this.txtGuiaID.Text = drFac.GuiaID.ToString(); /* Traer datos de impresión. */ agencia = AgenciaFactory.GetAgencia(); agencia.AgenciaID = drFac.AgenciaID; agencia.ConsultarBasico(); /* Traer los datos de la factura para la impresión. */ oFactura.FacturaID = drFac.FacturaID; // Reviso si se trata de una factura de concepto de facturación o de una factura que cancela un remito pendiente if (dsFacturas.Datos[0].ClasificacionFacturaID == (Int32)NegociosSisPackInterface.SisPack.ClasificacionFactura.ConceptoFacturacion) { // Se trata de una factura de concepto de facturación Session["DatosGuia"] = ToDsGuiaFacturaConceptoImpresion(oFactura.GetFacturaConceptoImpresionByFacturaID()); } else { // Se trata de una factura de un flete pago en destino, entrega o un remito de cta cte dsFacturaImpresion = ToDsGuiaFacturaImpresion(drFac.AgenciaID, oFactura.GetFacturaImpresionByFacturaID()); Session["DatosGuia"] = dsFacturaImpresion; } drFac = null; /*************************************************/ } else { return; } } int tipoImpresionGuiaID = Convert.IsDBNull(agencia.TipoImpresionGuiaId) ? 0 : agencia.TipoImpresionGuiaId; if (tipoImpresionGuiaID == 0) { return; } if (tipoImpresionGuiaID == (int)NegociosSisPackInterface.SisPack.TipoImpresionGuia.PreImpresa) { return; } string implementacion = System.Configuration.ConfigurationSettings.AppSettings["Implementacion"].ToString(); string paginaImpresion = agencia.GetPaginaImpresion(tipoImpresionGuiaID, implementacion); if (paginaImpresion.Trim().Equals("")) { return; } agencia = null; /*****************************/ ImprimirGuiaBlanco(); oGuia = null; oFactura = null; dsFacturaImpresion = null; ds = null; dsFacturas = null; } catch (Exception ex) { } }
protected void btnCalcularImporte_Click(object sender, EventArgs e) { Page.Validate("CalcularImportes"); if (Page.IsValid) { IFactura factura = FacturaFactory.GetFactura(); // Calculo el importe de la factura factura.UnidadNegocioID = UnidadNegocioID; IFacturaDetalle detalle = FacturaDetalleFactory.GetFacturaDetalle(); detalle.ConceptoFacturacionID = Convert.ToInt32(ddlConceptoFacturacion.SelectedValue); if (txtTope.Text != "") { //Diego 31/03/2014 Modificado para que se pueda poner decimales en los m3 //detalle.Tope = Convert.ToInt32(txtTope.Text); detalle.Tope = Convert.ToDouble(txtTope.Text);//.Replace(".",",")); } if (txtCodigoBarras.Text != "") { detalle.CodigoBarras = txtCodigoBarras.Text.Trim();//.Replace(".",",")); } factura.DetalleFactura.Add(detalle); factura.AgenciaID = AgenciaConectadaID; factura.CalcularImporteConceptoFacturacion(); // Determino el tipo de factura que se va a emitir con los datos ingresados factura.CondicionIVAAgentePago = ClienteFacturacion1.CondicionIVA ?? 0; if (rbtContado.Checked) { factura.CondicionPagoID = (Int32)NegociosSisPackInterface.SisPack.CondicionPago.Contado; } else if (rbtCtaCte.Checked) { factura.CondicionPagoID = (Int32)NegociosSisPackInterface.SisPack.CondicionPago.CuentaCorriente; } else if (rbtPagoEnDestino.Checked) { factura.CondicionPagoID = (Int32)NegociosSisPackInterface.SisPack.CondicionPago.PagoEnDestino; } else { factura.CondicionPagoID = (Int32)NegociosSisPackInterface.SisPack.CondicionPago.TarjCredDeb; } // Muestro los importes if (factura.DeterminarTipoFacturaConceptoFacturacion() == "A") { lblNeto.Text = factura.ImporteNeto.ToString("#,###0.00"); lblIVA.Text = factura.ImporteIVA.ToString("#,###0.00"); lblTotal.Text = factura.ImporteTotal.ToString("#,###0.00"); //PERCEPCION // lblPercepcion.Text = factura.ImportePercepcion.ToString("#,###0.00"); } else { lblNeto.Text = factura.ImporteTotal.ToString("#,###0.00"); lblIVA.Text = ""; //PERCEPCION // lblPercepcion.Text = factura.ImportePercepcion.ToString("#,###0.00"); lblTotal.Text = factura.ImporteTotal.ToString("#,###0.00"); } } }
protected void btnGuardarServicio_Click(object sender, EventArgs e) { string lista = string.Empty; usuario = (IUsuarios)Session["usuario"]; IAgencia agencia = AgenciaFactory.GetAgencia(); DsAgencias dsAgencias = agencia.GetAgenciasDataSet(); string[] nroGuias = Session["ListaGuias"].ToString().Split(','); string[] nroFacturas = Session["ListaFacturas"].ToString().Split(','); bool ok = true; Hashtable hGuias = new Hashtable(); // Guías que no se pueden recibir, porque ya fueron recibidas Hashtable hGuiasNR = new Hashtable(); // Guías que no están en condiciones de ser recibidas porque no existen en el sistema. string mensaje = ""; string mensaje2 = ""; string nroguiaAnt = ""; int loteant = 0; DsGuiaServicioConfirmacion ds = (DsGuiaServicioConfirmacion)Session["GuiasSinConfirmar"]; int cantGuias = nroGuias.Length; // Utiles.Validaciones.obtieneEntero(this.txtGuiaIndex.Text); int cantFacturas = nroFacturas.Length; int nroGuia, nroFactura; DsImpresionConfirmacionServicio dsImpresion = new DsImpresionConfirmacionServicio(); for (int i = 0; i < cantGuias; i++) { // ANTES DE RECIBIR CADA GUÍA HAY QUE REALIZAR LOS CONTROLES CORRESPONDIENTES // E IR GUARDANDO LAS GUÍAS QUE FALLAN, PARA LUEGO VISUALIZAR UNA LISTA DE ESAS GUÍAS // string nroGuia = nroGuias[i]; // Request.Form[txt].ToString(); if (int.TryParse(nroGuias[i], out nroGuia)) { IGuia oGuia = GuiaFactory.GetGuia(); oGuia.GuiaID = nroGuia; oGuia.Consultar(); // Lógica para recibir guías string tGuia = ""; tGuia = oGuia.TipoGuia; string nroSucursal = oGuia.NroSucursalGuia; string nGuia = oGuia.NroGuia.ToString(); string nroRemito = string.Empty; string numero_guia = string.Empty; oGuia.UsuarioID = usuario.UsuarioID; oGuia.GuiaConformadaDesdeModuloRecepcionConformadas = true; lista += oGuia.GuiaID + ","; ICaja caja = CajaFactory.GetCajaFactory(); caja.CajaID = cajaID; // si la guía existe en el sistema if (oGuia.GuiaID > 0) { foreach (DsGuiaServicioConfirmacion.DatosRow dr in ds.Tables[0].Rows) { if (oGuia.GuiaID == dr.GuiaID && dr.Seleccionado) { nroRemito = dr.NroRemito; numero_guia = dr.NroGuia; } } // Asocio la guia con el lote. lote = caja.AgregarGuiaEmision(oGuia, usuario, this.AgenciaConectadaID, this.cantGuias, nroRemito); if (lote == 0) // Si es igual a cero es porque la guía ya se almacenó. { // La guia ya se encuentra almacenada. La agrego al hashtable de guias ya almacenadas string guia = nroSucursal + "-" + nGuia + "-" + tGuia; if (hGuias.ContainsKey(oGuia.GuiaID) == false) { hGuias.Add(oGuia.GuiaID, guia); } } else { if (nroRemito != string.Empty) { dsImpresion.Datos.AddDatosRow(numero_guia, nroRemito); } } // Comparo para ir guardando los cambios de lote, para al finalizar mostrar un mensaje con la posicion y lote de la guia. if (loteant != lote && lote != 0 && loteant != 0) { // Se muestran mensaje con el siguiente formato: "Lote 1. Posicion: 100. Guia: 9414100020" mensaje = "Lote : " + loteant + " . Posicion : " + cantGuias.ToString() + " . Guia : " + nroguiaAnt; mensaje2 = "Lote : " + lote + " . Posicion : 001 . Guia : " + nroGuia; } if (lote != 0) { loteant = lote; } else { if (loteant != 0) { lote = loteant; } } nroguiaAnt = nroGuia.ToString(); } else // La guia no existe en el sistema { //La agrego al hashtable de guias que no existen en el sistema. string guia = nroSucursal + "-" + nGuia + "-" + tGuia; hGuiasNR.Add(guia, guia); } } } // fin for //Guardo las facturas for (int i = 0; i < cantFacturas; i++) { // ANTES DE RECIBIR CADA GUÍA HAY QUE REALIZAR LOS CONTROLES CORRESPONDIENTES // E IR GUARDANDO LAS GUÍAS QUE FALLAN, PARA LUEGO VISUALIZAR UNA LISTA DE ESAS GUÍAS // string nroGuia = nroGuias[i]; // Request.Form[txt].ToString(); if (int.TryParse(nroFacturas[i], out nroFactura)) { IFactura oFactura = FacturaFactory.GetFactura(); oFactura.FacturaID = nroFactura; oFactura.Consultar(); // Lógica para recibir facturas string tFactura = oFactura.TipoGuia; string nroSucursal = oFactura.NroSucursalGuia; string nGuia = oFactura.NroGuia.ToString(); string numero_guia = string.Empty; oFactura.UsuarioIDAlta = usuario.UsuarioID; //oFactura.GuiaConformadaDesdeModuloRecepcionConformadas = true; ICaja caja = CajaFactory.GetCajaFactory(); caja.CajaID = cajaID; // si la factura existe en el sistema if (oFactura.FacturaID > 0) { // Asocio la factura con el lote. lote = caja.AgregarFacturaEmision(oFactura, usuario, this.AgenciaConectadaID, this.cantGuias, ""); if (lote == 0) // Si es igual a cero es porque la guía ya se almacenó. { // La guia ya se encuentra almacenada. La agrego al hashtable de guias ya almacenadas string guia = nroSucursal + "-" + nGuia + "-" + tFactura; if (hGuias.ContainsKey(oFactura.FacturaID) == false) { hGuias.Add(oFactura.FacturaID, guia); } } // Comparo para ir guardando los cambios de lote, para al finalizar mostrar un mensaje con la posicion y lote de la guia. if (loteant != lote && lote != 0 && loteant != 0) { // Se muestran mensaje con el siguiente formato: "Lote 1. Posicion: 100. Guia: 9414100020" mensaje = "Lote : " + loteant + " . Posicion : " + cantGuias.ToString() + " . Factura : " + nroguiaAnt; mensaje2 = "Lote : " + lote + " . Posicion : 001 . Factura : " + nroFactura; } if (lote != 0) { loteant = lote; } else { if (loteant != 0) { lote = loteant; } } nroguiaAnt = nroFactura.ToString(); } else // La guia no existe en el sistema { //La agrego al hashtable de guias que no existen en el sistema. string guia = nroSucursal + "-" + nGuia + "-" + tFactura; hGuiasNR.Add(guia, guia); } } } // fin for Session["GuiaConfirmacion"] = dsImpresion; Session["GuiasNR"] = hGuiasNR; Session["Guias"] = hGuias; // Si todo ocurrió bien y además no hubo cambio de lote muestro el mensaje simple if (ok && lote != 0 && mensaje == "") { Session["GuiasDefectuosas"] = null; // LLAMO A LA PAGINA QUE TIENE LA LOGICA PARA LA IMPRESION string scriptString = "<script language='javascript'>\n"; scriptString += "alert('Guias Almacenadas en Lote: " + lote + "'); \n"; scriptString += "window.showModalDialog('ImprimirConfirmaciones.aspx','Imprimiendo Confirmacion...','dialogHeight: 934px;dialogWidth: 762px;edge: Raised; center: No; Status:No; help: No; resizable: No;');"; scriptString += "window.location.href = 'RecepcionEmitidas.aspx?d=0&cajaID=" + cajaID + "';\n"; scriptString += "</script>\n"; Page.RegisterStartupScript("scriptOpen", scriptString); //Page.RegisterStartupScript("muestraMensaje", // SisPackController.GenerarJavaScripts.MostrarMensaje( // "Guias Almacenadas en Lote: " + lote, // "RecepcionEmitidas.aspx?cajaID=" + cajaID)); } // Si todo ocurrió bien pero hubo cambio de lote muestro el mensaje compuesto por mensaje y mensaje2 else if (mensaje != "") { Session["GuiasDefectuosas"] = null; // LLAMO A LA PAGINA QUE TIENE LA LOGICA PARA LA IMPRESION string scriptString = "<script language='javascript'>\n"; scriptString += "alert('" + mensaje + "\\n" + mensaje2 + "'); \n"; scriptString += "window.showModalDialog('ImprimirConfirmaciones.aspx','Imprimiendo Confirmacion...','dialogHeight: 934px;dialogWidth: 762px;edge: Raised; center: No; Status:No; help: No; resizable: No;');"; scriptString += "window.location.href = 'RecepcionEmitidas.aspx?d=0&cajaID=" + cajaID + "';\n"; scriptString += "</script>\n"; Page.RegisterStartupScript("scriptOpen", scriptString); //Page.RegisterStartupScript("muestraMensaje", // SisPackController.GenerarJavaScripts.MostrarMensaje( // mensaje + "\\n" + mensaje2, "RecepcionEmitidas.aspx?cajaID=" + cajaID)); } // Si no se almaceno ninguna guia no muestro mensaje. Redirecciono al load con los errores. else { this.txtGuiasDefectuosas.Text = "1"; Session["GuiasDefectuosas"] = hGuias; Response.Redirect("RecepcionEmitidas.aspx?d=0&cajaID=" + cajaID); } }
private void dtgSolicitudRetiro_ItemCommand_1(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) { if (e.CommandName == "Imprimir") { try { Session["GuiaPasajeACtaCteID"] = e.Item.Cells[0].Text; Session["GuiaID"] = e.Item.Cells[1].Text; //controlar que no haya sido ya impresa //if (true) //{ #region ImpresionDeComprobantes // Reviso si se registro una factura por un remito IFactura factura = FacturaFactory.GetFactura(); factura.GuiaID = Utiles.Validaciones.obtieneEntero(e.Item.Cells[1].Text); factura.ClasificacionFacturaID = (int)NegociosSisPackInterface.SisPack.ClasificacionFactura.Remito; DsFactura ds = factura.ObtenerFacturaDeRemitoByGuiaID(); if (ds.Datos.Rows.Count > 0) { factura.FacturaID = (int)ds.Datos.Rows[0]["FacturaID"]; } // Reviso si se genero la factura if (factura.FacturaID != 0) { // Si se genero //VSA: Session["DatosGuia"] = ToDsGuiaFacturaImpresion(factura.GetFacturaImpresionByGuiaID()); Session["DatosGuia"] = ToDsGuiaFacturaImpresion(factura.GetFacturaImpresionByFacturaID()); // Seteo la página con la cual se va a imprimir la factura IAgencia agOrigen = AgenciaFactory.GetAgencia(); //agOrigen.AgenciaID = AgenciaConectadaID; IGuia guia = GuiaFactory.GetGuia(); guia.GuiaID = Utiles.Validaciones.obtieneEntero(e.Item.Cells[1].Text); guia.Consultar(); agOrigen.AgenciaID = guia.AgenciaDestinoID; agOrigen.ConsultarBasico(); string pagina = ObtienePaginaImpresion(agOrigen.TipoImpresionGuiaId); agOrigen = null; /* VSA: Controlar si el remito original se pasó a cuenta corriente -> Imprimir un nuevo remito no factura. */ string nombreListado = ExportarPDF(factura.GetFacturaImpresionByFacturaID()); factura = null; // Cargo el script para imprimir el nuevo remito y la nota que se le entregará al cliente string script = "<script language='javascript'>\n"; script += " window.showModalDialog('"+ pagina + "','Imprimiendo Remito...','dialogHeight: 934px;dialogWidth: 762px;edge: Raised; center: No; Status:No; help: No; resizable: No;');"; if (nombreListado != "") { script += "window.open('VerPlanilla.aspx?id=" + nombreListado + "', '', 'width=0,height=0,status=no,scrollbars=yes,resizable=yes');\n"; } script += " </script>\n"; ClientScript.RegisterStartupScript(GetType(), "scriptImprimirNuevoRemito", script); } #endregion /*Actualizar la autorizacion como impresa.*/ IGuiaPasajeACtaCte pasaje = GuiaPasajeACtaCteFactory.GetGuiaPasajeACtaCte(); pasaje.GuiaPasajeACtaCteID = Utiles.Validaciones.obtieneEntero(Session["GuiaPasajeACtaCteID"].ToString()); pasaje.GuardarPasajeImpreso(); BindGrid(0); //} //else //{ // throw new Exception("El pasaje ya ha sido impreso."); //} } catch (Exception ex) { ((SisPacK.ErrorWeb)phErrores.Controls[0]).setMensaje(ex.Message); } } }
protected void btnConsultar_Click(object sender, EventArgs e) { IAdministrarGuias admGuiaO = AdministrarGuiasFactory.GetAdministrarGuias(); try { if (txtRangoDesde.Text == "") { throw new Exception("Falta ingresar rango"); } if (txtRangoHasta.Text == "") { throw new Exception("Falta ingresar rango"); } if (ddlTipoGuia.SelectedValue == "") { throw new Exception("Falta seleccionar tipo de guia"); } //if (cantidad >= 51 || cantidad < 0) //{ // throw new Exception("Solamente se permite un rango de 50 CB a imprimir ."); //} IAgencia ag = AgenciaFactory.GetAgencia(); ag.AgenciaID = usuario.AgenciaID; ag.Consultar(); IGuia oGuia = GuiaFactory.GetGuia(); IFactura oFactura = FacturaFactory.GetFactura(); DsGuias ds = new DsGuias(); if (ddlEmpresa.SelectedValue == "Cargas") { string SucursalFinal = ag.SucursalDGI.Trim().Substring(1, 3); nrosucrusal = 5 + SucursalFinal; //5 } else if (ddlEmpresa.SelectedValue == "Express") { nrosucrusal = ag.SucursalDGI.Trim(); //4 } else { nrosucrusal = ""; } int NroDesde = Convert.ToInt32(txtRangoDesde.Text); int NroHasta = Convert.ToInt32(txtRangoHasta.Text); string tipoguia = ddlTipoGuia.SelectedValue; ds = oGuia.GetGuiasByFecha(NroDesde, NroHasta, nrosucrusal, tipoguia, usuario.AgenciaID); if (ds.Datos.Count == 0) { throw new Exception("No existen guias en el rango ingresado"); } if (ds.Datos.Count > 0) { for (int i = 0; i < ds.Datos.Count(); i++) { DsGuias.DatosRow dr = (DsGuias.DatosRow)ds.Datos.Rows[i]; string guiaid = dr.GuiaID.ToString(); admGuiaO.GuiaID = Convert.ToInt32(guiaid); try { dataImpresion = admGuiaO.GetDataSetImpresionByGuiaID(); } catch (Exception ex) { throw new Exception(ex.Message); } origen = dataImpresion.Datos.Rows[0][60].ToString(); destino = dataImpresion.Datos.Rows[0]["LocalidadDestinatario"].ToString(); admGuiaO.TipoGuia = dataImpresion.Datos.Rows[0][1].ToString(); admGuiaO.NroSucursalGuia = dataImpresion.Datos.Rows[0][2].ToString(); admGuiaO.NroGuia = Convert.ToInt32(dataImpresion.Datos.Rows[0][3].ToString()); admGuiaO.CantBultos = Convert.ToInt32(dataImpresion.Datos.Rows[0][29].ToString()); NegociosSisPack.ImpresionCajon IC = new NegociosSisPack.ImpresionCajon(); try { Session["ImpresoraUsuario"].ToString(); //para el caso en el que quieran imprimir solamente un CB //por ejemplo una guia que tenga 50 bultos. //Si presionan el check solamente se imprime 1 etiqueta. FQuiroga 22/12/2016 if (chkCantidad.Checked == true) { admGuiaO.CantBultos = 1; } string cb = (admGuiaO.TipoGuia == "R" ? "9" : (admGuiaO.TipoGuia == "A" ? "3" : "4")) + admGuiaO.NroSucursalGuia + admGuiaO.NroGuia.ToString(); try { for (int i2 = 1; i2 <= admGuiaO.CantBultos; i2++) { IC.Imprimir(admGuiaO.TipoGuia + " " + admGuiaO.NroSucursalGuia + admGuiaO.NroGuia.ToString().ToString(), i2 + "/" + admGuiaO.CantBultos.ToString("000"), cb + i2.ToString("000"), CINT("1", 1), Session["ImpresoraUsuario"].ToString(), origen, destino); } } catch (Exception ex) { ((ErrorWeb)(this.phErrores.Controls[0])).setMensaje(TraducirTexto("El usuario no tiene configurada una impresora.")); } } catch (Exception ex) { ((ErrorWeb)(this.phErrores.Controls[0])).setMensaje(TraducirTexto("El usuario no tiene configurada una impresora.")); } //descanso de codigos para que no salgan tan rapido y se trabe Thread.Sleep(Utiles.Validaciones.obtieneEntero("500")); } } } catch (Exception ex) { ((ErrorWeb)(this.phErrores.Controls[0])).setMensaje(TraducirTexto(ex.Message)); } Limpiar(); }
private void butConfirmar_Click(object sender, System.EventArgs e) { List <IGuia> listadoGuias = new List <IGuia>(); List <IFactura> listadoFacturas = new List <IFactura>(); string lista = string.Empty; string listaFacturas = string.Empty; usuario = (IUsuarios)Session["usuario"]; IAgencia agencia = AgenciaFactory.GetAgencia(); DsAgencias dsAgencias = agencia.GetAgenciasDataSet(); bool ok = true; Hashtable hGuias = new Hashtable(); // Guías que no se pueden recibir, porque ya fueron recibidas Hashtable hGuiasNR = new Hashtable(); // Guías que no están en condiciones de ser recibidas porque no existen en el sistema. string mensaje = ""; string mensaje2 = ""; string nroguiaAnt = ""; int loteant = 0; int cant = Utiles.Validaciones.obtieneEntero(this.txtGuiaIndex.Text); for (int i = 0; i < cant; i++) { // ANTES DE RECIBIR CADA GUÍA HAY QUE REALIZAR LOS CONTROLES CORRESPONDIENTES // E IR GUARDANDO LAS GUÍAS QUE FALLAN, PARA LUEGO VISUALIZAR UNA LISTA DE ESAS GUÍAS string txt = "txt" + i; string ddl = "ddl" + i.ToString(); string nroGuia = Request.Form[txt].ToString(); // Lógica para recibir guías string tGuia = ""; tGuia = NegociosSisPackInterface.SisPack.TipoGuia(nroGuia.Substring(0, 1)); string nroSucursal = nroGuia.Substring(1, 4); string nGuia = nroGuia.Substring(5).Replace(",", ""); IGuia oGuia = GuiaFactory.GetGuia(); oGuia.NroGuia = Utiles.Validaciones.obtieneEntero(nGuia); oGuia.NroSucursalGuia = nroSucursal; oGuia.TipoGuia = tGuia; oGuia.ConsultarByNroGuia(); oGuia.UnidadNegocioID = this.UnidadNegocioID; oGuia.UsuarioID = usuario.UsuarioID; oGuia.GuiaConformadaDesdeModuloRecepcionConformadas = true; if (oGuia.GuiaID > 0) //Es una guia { if (!lista.Contains(oGuia.GuiaID.ToString())) { lista += oGuia.GuiaID + ","; listadoGuias.Add(oGuia); } } else // es una factura { IFactura oFactura = FacturaFactory.GetFactura(); oFactura.NroGuia = Utiles.Validaciones.obtieneEntero(nGuia); oFactura.NroSucursalGuia = nroSucursal; oFactura.TipoGuia = tGuia; oFactura.ConsultarByNroFactura(); if (oFactura.FacturaID > 0) { if (!listaFacturas.Contains(oFactura.FacturaID.ToString())) { listaFacturas += oFactura.FacturaID + ","; listadoFacturas.Add(oFactura); } } else // La guia no existe en el sistema { //La agrego al hashtable de guias que no existen en el sistema. string guia = nroSucursal + "-" + nGuia + "-" + tGuia; hGuiasNR.Add(guia, guia); } } } /*Diego 22/03/2013 Guardar los valores para pasar a la pantalla de confirmacion */ IGuiaServicioConfirmacion guiaServicio = GuiaServicioConfirmacionFactory.GetGuiaServicioConfirmacion(); DsGuiaServicioConfirmacion ds = guiaServicio.GetGuiasSinConfirmacion(lista, 1); //1 = busca las guias emitidas if (ds.Datos.Rows.Count > 0) { /*debo guardar los id para mostrar el pop up para ingresar */ Session["GuiasSinConfirmar"] = ds; Session["ListaGuias"] = lista; Session["ListaFacturas"] = listaFacturas; string script = "<script language='javascript'>\n"; script += " window.showModalDialog('Recepcion_ConfirmacionGuias.aspx','Confirmacion','dialogHeight: 934px;dialogWidth: 762px;edge: Raised; center: No; Status:No; help: No; resizable: No;');\n"; script += " GuardarServicios(); \n"; script += " </script>\n"; Page.RegisterStartupScript("scriptImprimirGuiaUnidad", script); } else { /* No tiene guias para confirmar el servicio*/ foreach (var oGuia in listadoGuias) { ICaja caja = CajaFactory.GetCajaFactory(); caja.CajaID = cajaID; // si la guía existe en el sistema if (oGuia.GuiaID > 0) { // Asocio la guia con el lote. lote = caja.AgregarGuiaEmision(oGuia, usuario, this.AgenciaConectadaID, this.cantGuias, ""); if (lote == 0) // Si es igual a cero es porque la guía ya se almacenó. { // La guia ya se encuentra almacenada. La agrego al hashtable de guias ya almacenadas string guia = oGuia.NroSucursalGuia + "-" + oGuia.NroGuia.ToString() + "-" + oGuia.TipoGuia; // nroSucursal + "-" + nGuia + "-" + tGuia; if (hGuias.ContainsKey(oGuia.GuiaID) == false) { hGuias.Add(oGuia.GuiaID, guia); } } // Comparo para ir guardando los cambios de lote, para al finalizar mostrar un mensaje con la posicion y lote de la guia. if (loteant != lote && lote != 0 && loteant != 0) { // Se muestran mensaje con el siguiente formato: "Lote 1. Posicion: 100. Guia: 9414100020" mensaje = "Lote : " + loteant + " . Posicion : " + cantGuias.ToString() + " . Guia : " + nroguiaAnt; mensaje2 = "Lote : " + lote + " . Posicion : 001 . Guia : " + oGuia.NroGuia.ToString();// nroGuia; } if (lote != 0) { loteant = lote; } else { if (loteant != 0) { lote = loteant; } } nroguiaAnt = oGuia.NroGuia.ToString();// nroGuia; } } // fin foreach foreach (var oFactura in listadoFacturas) { ICaja caja = CajaFactory.GetCajaFactory(); caja.CajaID = cajaID; // si la guía existe en el sistema if (oFactura.FacturaID > 0) { // Asocio la guia con el lote. lote = caja.AgregarFacturaEmision(oFactura, usuario, this.AgenciaConectadaID, this.cantGuias, ""); if (lote == 0) // Si es igual a cero es porque la guía ya se almacenó. { // La guia ya se encuentra almacenada. La agrego al hashtable de guias ya almacenadas string guia = oFactura.NroSucursalGuia + "-" + oFactura.NroGuia.ToString() + "-" + oFactura.TipoGuia; // nroSucursal + "-" + nGuia + "-" + tGuia; if (hGuias.ContainsKey(oFactura.FacturaID) == false) { hGuias.Add(oFactura.FacturaID, guia); } } // Comparo para ir guardando los cambios de lote, para al finalizar mostrar un mensaje con la posicion y lote de la guia. if (loteant != lote && lote != 0 && loteant != 0) { // Se muestran mensaje con el siguiente formato: "Lote 1. Posicion: 100. Guia: 9414100020" mensaje = "Lote : " + loteant + " . Posicion : " + cantGuias.ToString() + " . Guia : " + nroguiaAnt; mensaje2 = "Lote : " + lote + " . Posicion : 001 . Guia : " + oFactura.NroGuia.ToString();// nroGuia; } if (lote != 0) { loteant = lote; } else { if (loteant != 0) { lote = loteant; } } nroguiaAnt = oFactura.NroGuia.ToString();// nroGuia; } } // fin foreach /* * for (int i = 0; i < cant; i++) * { * // ANTES DE RECIBIR CADA GUÍA HAY QUE REALIZAR LOS CONTROLES CORRESPONDIENTES * // E IR GUARDANDO LAS GUÍAS QUE FALLAN, PARA LUEGO VISUALIZAR UNA LISTA DE ESAS GUÍAS * string txt = "txt" + i; * string ddl = "ddl" + i.ToString(); * * string nroGuia = Request.Form[txt].ToString(); * * // Lógica para recibir guías * string tGuia = ""; * tGuia = NegociosSisPackInterface.SisPack.TipoGuia(nroGuia.Substring(0, 1)); * string nroSucursal = nroGuia.Substring(1, 4); * string nGuia = nroGuia.Substring(5); * * IGuia oGuia = GuiaFactory.GetGuia(); * oGuia.NroGuia = Utiles.Validaciones.obtieneEntero(nGuia); * oGuia.NroSucursalGuia = nroSucursal; * oGuia.TipoGuia = tGuia; * oGuia.ConsultarByNroGuia(); * oGuia.UnidadNegocioID = this.UnidadNegocioID; * oGuia.UsuarioID = usuario.UsuarioID; * oGuia.GuiaConformadaDesdeModuloRecepcionConformadas = true; * lista += oGuia.GuiaID + ","; * ICaja caja = CajaFactory.GetCajaFactory(); * caja.CajaID = cajaID; * * // si la guía existe en el sistema * if (oGuia.GuiaID > 0) * { * // Asocio la guia con el lote. * lote = caja.AgregarGuiaEmision(oGuia, usuario, this.AgenciaConectadaID, this.cantGuias, ""); * if (lote == 0) // Si es igual a cero es porque la guía ya se almacenó. * { * // La guia ya se encuentra almacenada. La agrego al hashtable de guias ya almacenadas * string guia = nroSucursal + "-" + nGuia + "-" + tGuia; * if (hGuias.ContainsKey(oGuia.GuiaID) == false) * hGuias.Add(oGuia.GuiaID, guia); * } * // Comparo para ir guardando los cambios de lote, para al finalizar mostrar un mensaje con la posicion y lote de la guia. * if (loteant != lote && lote != 0 && loteant != 0) * { * // Se muestran mensaje con el siguiente formato: "Lote 1. Posicion: 100. Guia: 9414100020" * mensaje = "Lote : " + loteant + " . Posicion : " + cantGuias.ToString() + " . Guia : " + * nroguiaAnt; * mensaje2 = "Lote : " + lote + " . Posicion : 001 . Guia : " + nroGuia; * } * * if (lote != 0) * loteant = lote; * else * { * if (loteant != 0) * lote = loteant; * } * nroguiaAnt = nroGuia; * } * else // La guia no existe en el sistema * { * //La agrego al hashtable de guias que no existen en el sistema. * string guia = nroSucursal + "-" + nGuia + "-" + tGuia; * hGuiasNR.Add(guia, guia); * } * } */ Session["GuiasNR"] = hGuiasNR; Session["Guias"] = hGuias; // Si todo ocurrió bien y además no hubo cambio de lote muestro el mensaje simple if (ok && lote != 0 && mensaje == "") { Session["GuiasDefectuosas"] = null; Page.RegisterStartupScript("muestraMensaje", SisPackController.GenerarJavaScripts.MostrarMensaje( "Guias Almacenadas en Lote: " + lote, "RecepcionEmitidas.aspx?cajaID=" + cajaID)); } // Si todo ocurrió bien pero hubo cambio de lote muestro el mensaje compuesto por mensaje y mensaje2 else if (mensaje != "") { Session["GuiasDefectuosas"] = null; Page.RegisterStartupScript("muestraMensaje", SisPackController.GenerarJavaScripts.MostrarMensaje( mensaje + "\\n" + mensaje2, "RecepcionEmitidas.aspx?cajaID=" + cajaID)); } // Si no se almaceno ninguna guia no muestro mensaje. Redirecciono al load con los errores. else { this.txtGuiasDefectuosas.Text = "1"; Session["GuiasDefectuosas"] = hGuias; Response.Redirect("RecepcionEmitidas.aspx?d=0&cajaID=" + cajaID); } } }
private void butImprimir_Click(object sender, System.EventArgs e) { try { IGuia oGuia = GuiaFactory.GetGuia(); IFactura oFactura = FacturaFactory.GetFactura(); DsGuias ds = new DsGuias(); DsFactura dsFacturas = null; DsGuiaFacturaImpresion dsFacturaImpresion; IAgencia agencia = null; int tipoImpresionGuiaID = 0; int puedeReimprimir = 0; /*if(this.rbCodigo.Checked) * ds = oGuia.GetGuiasOneByCodigoBarra(this.txtCodigoBarra.Text.Trim()); */ if (this.rbCodigo.Checked) { try { oGuia.TipoGuia = NegociosSisPackInterface.SisPack.TipoGuia(this.txtCodigoBarra.Text.Substring(0, 1).Trim()).Trim(); if (oGuia.TipoGuia.Equals("")) { throw new Exception("Errores.Invalidos.CodigoBarrasLongitud"); } oGuia.NroSucursalGuia = this.txtCodigoBarra.Text.Substring(1, 4); oGuia.NroGuia = Convert.ToInt32(this.txtCodigoBarra.Text.Substring(5)); } catch (Exception) { ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("No se ha ingresado un nro. de guía correcto."); return; } } else if (this.rbTipo.Checked) { oGuia.TipoGuia = this.ddlTipoGuia.SelectedValue; oGuia.NroSucursalGuia = this.txtNroSucursal.Text.Trim().Equals("") ? "0" : this.txtNroSucursal.Text.Trim(); oGuia.NroGuia = this.txtNroGuia.Text.Trim().Equals("") ? 0 : Convert.ToInt32(this.txtNroGuia.Text.Trim()); } else { ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("No se ha ingresado el nro. de guía ha reimprimir."); return; } ds = oGuia.GetGuiaOneDataSet(); if (ds.Datos.Count == 0) { oFactura.TipoGuia = oGuia.TipoGuia; oFactura.NroSucursalGuia = oGuia.NroSucursalGuia; oFactura.NroGuia = oGuia.NroGuia; dsFacturas = oFactura.GetByNroFactura(); } if (ds.Datos.Count > 0) { DsGuias.DatosRow dr = (DsGuias.DatosRow)ds.Datos.Rows[0]; this.txtGuiaID.Text = dr.GuiaID.ToString(); puedeReimprimir = oGuia.VerificarReImpresion(dr.GuiaID, this.usuario.AgenciaID); if (puedeReimprimir == 1) { ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("No se puede reimprimir una guia FPD en el destino."); return; } else if (puedeReimprimir == 2) { ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("No se puede reimprimir la guia ya que no esta en la agencia."); return; } else { oGuia.RegistrarReImpresion(this.usuario.UsuarioID, this.usuario.AgenciaID, dr.GuiaID); } /* Traer datos de impresión. */ agencia = AgenciaFactory.GetAgencia(); agencia.AgenciaID = dr.AgenciaOrigenID; agencia.ConsultarBasico(); dr = null; /* Traer los datos de la guía para la impresión. */ IAdministrarGuias oAdminGuia = AdministrarGuiasFactory.GetAdministrarGuias(); oAdminGuia.GuiaID = Convert.ToInt32(this.txtGuiaID.Text.Trim()); dsFacturaImpresion = oAdminGuia.GetDataSetImpresionByGuiaID(); oAdminGuia = null; // 20/12/2013. Consulto (seteo) el tipo de impresion segun la agencia y la empresa de facturacion tipoImpresionGuiaID = Convert.IsDBNull(dsFacturaImpresion.Datos[0].TipoImpresionGuiaID) ? 0 : dsFacturaImpresion.Datos[0].TipoImpresionGuiaID; Session["DatosGuia"] = dsFacturaImpresion; /*************************************************/ } else if (ds.Datos.Count == 0) { if (dsFacturas.Datos.Count > 0) { DsFactura.DatosRow drFac = (DsFactura.DatosRow)dsFacturas.Datos.Rows[0]; //this.txtGuiaID.Text = drFac.GuiaID.ToString(); /* Traer datos de impresión. */ agencia = AgenciaFactory.GetAgencia(); agencia.AgenciaID = drFac.AgenciaID; agencia.ConsultarBasico(); /* Traer los datos de la factura para la impresión. */ oFactura.FacturaID = drFac.FacturaID; // Reviso si se trata de una factura de concepto de facturación o de una factura que cancela un remito pendiente if (dsFacturas.Datos[0].ClasificacionFacturaID == (Int32)NegociosSisPackInterface.SisPack.ClasificacionFactura.ConceptoFacturacion) { // Se trata de una factura de concepto de facturación dsFacturaImpresion = ToDsGuiaFacturaConceptoImpresion(oFactura.GetFacturaConceptoImpresionByFacturaID()); tipoImpresionGuiaID = Convert.IsDBNull(dsFacturaImpresion.Datos[0].TipoImpresionGuiaID) ? 0 : dsFacturaImpresion.Datos[0].TipoImpresionGuiaID; Session["DatosGuia"] = dsFacturaImpresion; } else { // Se trata de una factura de un flete pago en destino, entrega o un remito de cta cte dsFacturaImpresion = ToDsGuiaFacturaImpresion(drFac.AgenciaID, oFactura.GetFacturaImpresionByFacturaID()); // 20/12/2013. Consulto (seteo) el tipo de impresion segun la agencia y la empresa de facturacion tipoImpresionGuiaID = Convert.IsDBNull(dsFacturaImpresion.Datos[0].TipoImpresionGuiaID) ? 0 : dsFacturaImpresion.Datos[0].TipoImpresionGuiaID; Session["DatosGuia"] = dsFacturaImpresion; } drFac = null; /*************************************************/ } else { ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("No se encuentra la guía / factura ingresada."); return; } } // Se comenta la siguiente linea para el desarrollo de integracion de SisPack-Delfos. El tipo de impresion depende de la empresa y la agencia. Esto estaba al 20/12/2013 //int tipoImpresionGuiaID = Convert.IsDBNull(agencia.TipoImpresionGuiaId) ? 0 : agencia.TipoImpresionGuiaId; // Si es Unidad de Logistica, imprimir el comprobante como Autoimpresor_EnBlanco if (oGuia.TipoGuia == "X") { tipoImpresionGuiaID = (int)NegociosSisPackInterface.SisPack.TipoImpresionGuia.Autoimpresor_EnBlanco; } if (tipoImpresionGuiaID == 0) { ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("No se puede reimprimir la guía ingresada. El tipo de impresión no está definido."); return; } if (tipoImpresionGuiaID == (int)NegociosSisPackInterface.SisPack.TipoImpresionGuia.PreImpresa) { ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("No se puede reimprimir una guía pre-impresa."); return; } string implementacion = System.Configuration.ConfigurationSettings.AppSettings["Implementacion"].ToString(); string paginaImpresion = agencia.GetPaginaImpresion(tipoImpresionGuiaID, implementacion); if (paginaImpresion.Trim().Equals("")) { ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("No se puede reimprimir la guía ingresada. La página de impresión no está definida."); return; } agencia = null; /*****************************/ string scriptString = "<script language='javascript'>\n"; scriptString += " window.showModalDialog('"+ paginaImpresion + "?CantCopias=" + this.txtCantCopias.Text.Trim() + "','Reimprimiendo Guía...','dialogHeight: 934px;dialogWidth: 762px;edge: Raised; center: No; Status:No; help: No; resizable: No;');"; scriptString += " window.location.href = 'ReImprimirGuiaDestino.aspx';\n"; scriptString += " </script>\n"; Page.RegisterStartupScript("scriptImpresion", scriptString); oGuia = null; oFactura = null; dsFacturaImpresion = null; ds = null; dsFacturas = null; } catch (Exception ex) { ((ErrorWeb)this.phErrores.Controls[0]).setMensaje(ex.Message); } }
protected void btnConsultar_Click(object sender, EventArgs e) { try { IAgencia ag = AgenciaFactory.GetAgencia(); ag.AgenciaID = usuario.AgenciaID; ag.Consultar(); int NroDesde = Convert.ToInt32(txtFechaDesde.Text); int NroHasta = Convert.ToInt32(txtFechaHasta.Text); string tipoguia = ddlTipoGuia.SelectedValue; int cantidad = NroHasta - NroDesde; if (cantidad >= 51 || cantidad < 0) { throw new Exception("Solamente se permite un rango de 50 guías a imprimir ."); } if (txtCantidad.Text == "") { throw new Exception("Falta ingresar la cantidad de hojas a imprimir."); } if (txtFechaDesde.Text == "" && txtFechaHasta.Text == "") { throw new Exception("Falta ingresar Rango"); } if (txtFechaDesde.Text != "" && txtFechaHasta.Text == "") { throw new Exception("Falta ingresar "); } if (txtFechaDesde.Text == "" && txtFechaHasta.Text != "") { throw new Exception("Falta ingresar Rango"); } string nrosucursal = ag.SucursalDGI.Trim(); if (ddlEmpresa.SelectedValue == "Cargas") { string SucursalFinal = ag.SucursalDGI.Trim().Substring(1, 3); nrosucursal = 5 + SucursalFinal; //5 } else if (ddlEmpresa.SelectedValue == "Express") { nrosucursal = ag.SucursalDGI.Trim(); //4 } else { nrosucursal = ""; } IGuia oGuia = GuiaFactory.GetGuia(); IFactura oFactura = FacturaFactory.GetFactura(); DsGuias ds = new DsGuias(); IAgencia agencia = null; ds = oGuia.GetGuiasByFecha(NroDesde, NroHasta, nrosucursal, tipoguia, usuario.AgenciaID); if (ds.Datos.Count == 0) { throw new Exception("No existen guias en el rango ingresado"); } if (ds.Datos.Count > 0) { for (int i = 0; i < ds.Datos.Count(); i++) { DsGuias.DatosRow dr = (DsGuias.DatosRow)ds.Datos.Rows[i]; string guiaid = dr.GuiaID.ToString(); /* Traer datos de impresión. */ agencia = AgenciaFactory.GetAgencia(); agencia.AgenciaID = dr.AgenciaOrigenID; agencia.ConsultarBasico(); dr = null; IAdministrarGuias oAdminGuia = AdministrarGuiasFactory.GetAdministrarGuias(); oAdminGuia.GuiaID = Convert.ToInt32(guiaid.Trim()); drGuia = (DsGuiaFacturaImpresion.DatosRow)(oAdminGuia.GetDataSetImpresionByGuiaID()).Datos.Rows[0]; drGuia.CantidadCopiasImprimir = 1; dsFacturaImpresion.Datos.ImportRow(drGuia); oAdminGuia = null; Session["DatosGuia"] = dsFacturaImpresion; dsFacturaImpresion = (DsGuiaFacturaImpresion)Session["DatosGuia"]; } } string paginaImpresion = agencia.GetPaginaImpresion(3, "Andesmar"); if (paginaImpresion.Trim().Equals("")) { throw new Exception("No se puede reimprimir la guía ingresada. La página de impresión no está definida."); } agencia = null; /*****************************/ string scriptString = "<script language='javascript'>\n"; scriptString += " window.showModalDialog('"+ paginaImpresion + "?CantCopias=" + txtCantidad.Text + "','Reimprimiendo Guía...','dialogHeight: 934px;dialogWidth: 762px;edge: Raised; center: No; Status:No; help: No; resizable: No;');"; scriptString += " window.location.href = 'ReimprimirGuia.aspx';\n"; scriptString += " </script>\n"; Page.RegisterStartupScript("scriptImpresion", scriptString); oGuia = null; oFactura = null; dsFacturaImpresion = null; ds = null; } catch (Exception ex) { ((ErrorWeb)(this.phErrores.Controls[0])).setMensaje(TraducirTexto(ex.Message)); } }
private void Page_Load(object sender, System.EventArgs e) { DsGuiaFacturaImpresion ds = (DsGuiaFacturaImpresion)Session["DatosGuia"]; int cantCopias = 0; string nombreArchivo = ""; Boolean EsReImpresion = false; bool esFacturaRemito = false; // Reviso si se paso la cantidad de copias a imprimir o hay que obtenerlo de los parametros if (Request.QueryString["CantCopias"] == "" || Request.QueryString["CantCopias"] == null) { /* VSA 01-09-2009 Permitir parametrizar la cantidad de copias a imprimir para la guía */ if (((DsGuiaFacturaImpresion.DatosRow)ds.Datos.Rows[0]).IsEsFacturaRemitoNull() || ((DsGuiaFacturaImpresion.DatosRow)ds.Datos.Rows[0]).EsFacturaRemito == false) { // Se trata de una guía IGuia cantAImprGuia = GuiaFactory.GetGuia(); cantAImprGuia.GuiaID = ((DsGuiaFacturaImpresion.DatosRow)ds.Datos.Rows[0]).GuiaID; cantAImprGuia.UnidadNegocioID = UnidadNegocioID; cantCopias = cantAImprGuia.GetCantCuerposImprGuia(); cantAImprGuia = null; esFacturaRemito = false; } else { // Se trata de una factura IFactura factura = FacturaFactory.GetFactura(); cantCopias = factura.GetCantCuerposImprFacturaRemito(); factura = null; esFacturaRemito = true; } } else { // Si se paso la cantidad de copias a imprimir cantCopias = Utiles.Validaciones.obtieneEntero(Request.QueryString["CantCopias"]); EsReImpresion = true; } // Obtengo el texto del dorso de la guía IGuiaDorso guiaDorso = GuiaDorsoFactory.GetGuiaDorso(); guiaDorso.UnidadNegocioID = UnidadNegocioID; guiaDorso.Consultar(); string textoDorso = guiaDorso.Texto; // Cargo las copias for (int i = 0; i < cantCopias; i++) { System.Web.UI.Control impresion = Page.LoadControl("uc/ImprimirGuiaPre.ascx"); LlenarControl(ds, impresion, nombreArchivo); // cargo el control de impresión... impresion.ID = "ImpreBlanco" + i.ToString(); // Creo la imagen del CB if (i == 0) { nombreArchivo = CrearImagenCB(((IGuiaImpresion)impresion).TipoGuia, ((IGuiaImpresion)impresion).NroSucursal, ((IGuiaImpresion)impresion).NroGuia); } // Termino de cargar los datos ((IGuiaImpresion)impresion).RutaCodigoBarras = nombreArchivo; if (EsReImpresion == false) { ((IGuiaImpresion)impresion).DescripcionFormulario = ObtenerDescripcion(i + 1); ((IGuiaImpresion)impresion).EsReimpresion = false; } else { ((IGuiaImpresion)impresion).DescripcionFormulario = ObtenerDescripcion(3); ((IGuiaImpresion)impresion).EsReimpresion = true; } ((IGuiaImpresion)impresion).TextoDorso = textoDorso; ((IGuiaImpresion)impresion).EsFacturaRemito = esFacturaRemito;; phImpresion.Controls.Add(impresion); // hago un salto de página LiteralControl lt = new LiteralControl("<br style='page-break-after: always'>"); // no hace salto de página para la última hoja... if (i + 1 < cantCopias) { phImpresion.Controls.Add(lt); } } }
private void butBuscar_Click(object sender, System.EventArgs e) { try { DsFactura ds; if (this.radioTipo.Checked) { ds = BuscarPorTipo(); } else { ds = BuscarPorCodigo(); } if (ds != null) { this.butBuscar.Enabled = true; IFactura factura = FacturaFactory.GetFactura(); DsFactura.DatosRow[] drLista = (DsFactura.DatosRow[])ds.Datos.Select("UnidadNegocioID = " + this.UnidadNegocioID); int total = drLista.Length; if (total > 0) { DsFactura.DatosRow dr = drLista[0]; if (dr.EstadoFacturaID == (int)NegociosSisPackInterface.SisPack.EstadoFactura.Anulada) { /* La factura ya ha sido anulada */ Page.RegisterStartupScript("NoAnular", GenerarJavaScripts.MostrarMensaje("La factura se encuentra anulada.")); this.butConfirmar.Enabled = false; return; } if (dr.AgenciaID != 0) { IAgencia agencia = AgenciaFactory.GetAgencia(); agencia.AgenciaID = dr.AgenciaID; if (agencia.Consultar()) { this.txtAgenciaID.Text = agencia.AgenciaID.ToString(); this.txtAgencia.Text = agencia.RazonSocial.Trim(); } agencia = null; } // Permitir anulacion de facturas de conceptos facturables. this.txtGuiaID.Text = dr.IsGuiaIDNull() ? "" : dr.GuiaID.ToString(); this.txtFecha.Text = dr.FechaEmision.ToShortDateString().Trim(); this.txtImporte.Text = Utiles.Formatos.Importe(dr.ImporteNeto + dr.ImporteIVA); this.txtTipoImpresionGuiaID.Text = dr.IsTipoImpresionGuiaIDNull()? "0": dr.TipoImpresionGuiaID.ToString().Trim(); this.txtFacturaID.Text = dr.FacturaID.ToString().Trim(); this.txtClasificacionFactura.Text = dr.ClasificacionFactura.Trim(); this.txtClasificacionFacturaID.Text = dr.ClasificacionFacturaID.ToString().Trim(); this.butConfirmar.Enabled = true; this.butBuscar.Enabled = false; this.radioTipo.Enabled = false; this.radioCodigo.Enabled = false; dr = null; } else { string script = "<script language='javascript'>\n"; script += "alert('No se encontro la factura.');\n"; script += "</script>"; Page.RegisterStartupScript("scriptError", script); } factura = null; drLista = null; } } catch (Exception ex) { butBuscar.Enabled = false; string mensaje = ex.Message; try { mensaje = this.TraducirTexto(ex.Message); if (mensaje == "" || mensaje == null) { mensaje = ex.Message; } } catch (Exception) { mensaje = ex.Message; } ((ErrorWeb)this.phErrores.Controls[0]).setMensaje(mensaje); } }
private bool Anular() { try { IAgencia oAgencia = AgenciaFactory.GetAgencia(); oAgencia.AgenciaID = this.AgenciaConectadaID; IParametroUNegocio param = ParametroUNegocioFactory.GetParametroUNegocio(); param.Parametro = NegociosSisPackInterface.SisPack.Parametro.AgenciaDeAdministracion; param.UnidadNegocioID = this.UnidadNegocioID; param.Consultar(); int agAdm = Utiles.Validaciones.obtieneEntero(param.ValorString); /* Verónica: La anulación la debe realizar la agencia de origen */ /*SFE: 12/04/2011. Anulacion de Facturas a Terminal desde Administracion. Se agrega la condicion de controlar si la agencia Conectada es Administracion*/ if (this.AgenciaConectadaID == Convert.ToInt32(this.txtAgenciaID.Text) || this.AgenciaConectadaID == agAdm) { bool bOk = false; IFactura factura = FacturaFactory.GetFactura(); factura.FacturaID = Convert.ToInt32(this.txtFacturaID.Text.Trim()); factura.TipoGuia = this.txtTipoGuia.Text.Trim(); factura.TipoImpresionGuiaID = Convert.ToInt32(this.txtTipoImpresionGuiaID.Text.Trim()); factura.AgenciaID = Convert.ToInt32(this.txtAgenciaID.Text.Trim()); factura.ClasificacionFacturaID = Convert.ToInt32(this.txtClasificacionFacturaID.Text.Trim()); factura.GuiaID = Utiles.Validaciones.obtieneEntero(this.txtGuiaID.Text.Trim()); factura.FechaEmision = Convert.ToDateTime(Utiles.Validaciones.obtieneFecha(txtFecha.Text)); factura.ObservacionIDGuia = Convert.ToInt32(Observacion1.ObservacionID); factura.UnidadNegocioID = UnidadNegocioID; factura.EliminarEstadosConformacion = true; bOk = factura.Anular(this.txtObservaciones.Text, this.usuario, this.AgenciaConectadaID); //esto es porque si se anula la factura y esta factura esta asociada a una guia que es subia a una HRR //se conforma y se agrega una observacion en la HRR if (factura.CambiarHRRFactAnulada(Convert.ToInt32(Utiles.Validaciones.obtieneEntero(this.txtGuiaID.Text.Trim()))) == 1) { factura.CambiaEstadoHRRFactAnulada(Convert.ToInt32(Utiles.Validaciones.obtieneEntero(this.txtGuiaID.Text.Trim()))); } //////////**********************************************************************************************************************////////// DsFactura ds; if (this.radioTipo.Checked) { ds = BuscarPorTipo(); } else { ds = BuscarPorCodigo(); } IClienteEventual ev = ClienteEventualFactory.GetClienteEventual(); if (ds.Tables[0].Rows[0]["ClienteEventualID"] != null) { ev.ClienteEventualID = int.Parse(ds.Tables[0].Rows[0]["ClienteEventualID"].ToString()); ev.Consultar(); } if (ds.Tables[0].Rows[0]["TipoGuia"].ToString() == "A" || ds.Tables[0].Rows[0]["TipoGuia"].ToString() == "B") { try { // La validación del número de guía debe realizarse sólo si el modo de impresión no es "Autoimpresor" IAgencia agencia = AgenciaFactory.GetAgencia(); agencia.AgenciaID = this.AgenciaConectadaID; agencia.Consultar(); //ws = Session["WSFactElect"] as SisPack.WSFEL.FEService; //if (ws == null) //{ // // create the proxy // //MyService = new localhost.MyDemo(); // ws = new SisPack.WSFEL.FEService(); // // create a container for the SessionID cookie // ws.CookieContainer = new CookieContainer(); // ws.Inicializar(long.Parse(CUITExpress), NombreCertificadoExpress, Ambiente); // //ws.Inicializar(long.Parse(CUITCargas), NombreCertificadoCargas, Ambiente); // // store it in Session for next usage // Session["WSFactElect"] = ws; //} string referencia = string.Empty; try { //string sError = string.Empty; //DateTime sVencimientoCae = new DateTime(); //Detalles detalle = new Detalles(); int puntoVta = int.Parse(ds.Tables[0].Rows[0]["NroSucursalGuia"].ToString()); int tipoCbe = 6; int tipoDocumento = 96; long numeroDocumento = 30414121; int tipoConcepto = 2; double totalConcepto = 0; double neto = double.Parse(ds.Tables[0].Rows[0]["ImporteNeto"].ToString()); double exento = 0; double totalTributos = 0; double totalIva = double.Parse(ds.Tables[0].Rows[0]["ImporteIVA"].ToString()); double total = neto + totalIva; int tipoIva = 5; long nroFactura = 0; if (ds.Tables[0].Rows[0]["TipoGuia"].ToString() == "A") { tipoCbe = 3; //Nota de Crédito A numeroDocumento = long.Parse(ev.NroCuit); if ((int)ev.TipoDocumentoCuit == 5) { tipoDocumento = 80; //CUIT } else if ((int)ev.TipoDocumentoCuit == 6) { tipoDocumento = 86; //CUIL } else { tipoDocumento = 91; //91 } } else { tipoCbe = 8; //Nota de Crédito B numeroDocumento = long.Parse(ev.NroDocumento.ToString()); if ((int)ev.TipoDocumento == 1) { tipoDocumento = 96; //DNI } else if ((int)ev.TipoDocumento == 2) { tipoDocumento = 90; //LC } else if ((int)ev.TipoDocumento == 3) { tipoDocumento = 89; //LE } else if ((int)ev.TipoDocumento == 4) { tipoDocumento = 94; //Pasaporte } else if ((int)ev.TipoDocumento == 6) { tipoDocumento = 86; //CUIL } else { tipoDocumento = 91; //91 } } if (totalIva == 0) { tipoIva = 3; //Iva 0 } IAFIP afip = AFIPFactory.GetAFIP(); string fechaFE = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString("00") + DateTime.Now.Day.ToString("00"); //detalle.Ivas.AddIvasRow(tipoIva, neto, totalIva); string NumeroCAE = string.Empty; if (ds.Tables[0].Rows[0]["EmpresaFacturacionID"].ToString() == "1") { //nroFactura = ws.ObtieneUltimoNroCbte(puntoVta, tipoCbe, long.Parse(CUITExpress)) + 1; //NumeroCAE = ws.ObtenerCAE(1, 1, puntoVta, tipoCbe, tipoConcepto, tipoDocumento, numeroDocumento, nroFactura, nroFactura, fechaFE, // total, totalConcepto, neto, exento, totalTributos, totalIva, fechaFE, fechaFE, fechaFE, "PES", 1, detalle, ref sError, ref sVencimientoCae, long.Parse(CUITExpress)); if (afip.ObtieneUltimoNroCbte(puntoVta, tipoCbe, long.Parse(CUITExpress), NombreCertificadoExpress, Ambiente)) { nroFactura = afip.NumeroFactura; if (afip.ObtenerCAE(puntoVta, tipoCbe, long.Parse(CUITExpress), NombreCertificadoExpress, Ambiente, tipoConcepto, tipoDocumento, numeroDocumento, nroFactura, fechaFE, total, totalConcepto, neto, exento, totalTributos, totalIva, tipoIva)) { NumeroCAE = afip.NumeroCAE; } } } else { //nroFactura = ws.ObtieneUltimoNroCbte(puntoVta, tipoCbe, long.Parse(CUITCargas)) + 1; //NumeroCAE = ws.ObtenerCAE(1, 1, puntoVta, tipoCbe, tipoConcepto, tipoDocumento, numeroDocumento, nroFactura, nroFactura, fechaFE, // total, totalConcepto, neto, exento, totalTributos, totalIva, fechaFE, fechaFE, fechaFE, "PES", 1, detalle, ref sError, ref sVencimientoCae, long.Parse(CUITCargas)); } //if (sError.Contains("10016-El número o fecha del comprobante no se corresponde con el próximo a autorizar.")) if (afip.errorCAE.Contains("10016-El número o fecha del comprobante no se corresponde con el próximo a autorizar.")) { //verifico nuevamente por si alguien estaba usando ese numero if (ds.Tables[0].Rows[0]["EmpresaFacturacionID"].ToString() == "1") { //nroFactura = ws.ObtieneUltimoNroCbte(puntoVta, tipoCbe, long.Parse(CUITExpress)) + 1; //NumeroCAE = ws.ObtenerCAE(1, 1, puntoVta, tipoCbe, tipoConcepto, tipoDocumento, numeroDocumento, nroFactura, nroFactura, fechaFE, // total, totalConcepto, neto, exento, totalTributos, totalIva, fechaFE, fechaFE, fechaFE, "PES", 1, detalle, ref sError, ref sVencimientoCae, long.Parse(CUITExpress)); if (afip.ObtieneUltimoNroCbte(puntoVta, tipoCbe, long.Parse(CUITExpress), NombreCertificadoExpress, Ambiente)) { nroFactura = afip.NumeroFactura; if (afip.ObtenerCAE(puntoVta, tipoCbe, long.Parse(CUITExpress), NombreCertificadoExpress, Ambiente, tipoConcepto, tipoDocumento, numeroDocumento, nroFactura, fechaFE, total, totalConcepto, neto, exento, totalTributos, totalIva, tipoIva)) { NumeroCAE = afip.NumeroCAE; } } } else { //nroFactura = ws.ObtieneUltimoNroCbte(puntoVta, tipoCbe, long.Parse(CUITCargas)) + 1; //NumeroCAE = ws.ObtenerCAE(1, 1, puntoVta, tipoCbe, tipoConcepto, tipoDocumento, numeroDocumento, nroFactura, nroFactura, fechaFE, // total, totalConcepto, neto, exento, totalTributos, totalIva, fechaFE, fechaFE, fechaFE, "PES", 1, detalle, ref sError, ref sVencimientoCae, long.Parse(CUITCargas)); } } else if (afip.errorCAE != string.Empty) { using (System.IO.StreamWriter archivo = System.IO.File.AppendText(@"C:\log\LogFactura.log")) { archivo.WriteLine("AnularFactura.aspx.cs linea 753-------------------------------------------------------------------------------------"); archivo.WriteLine("--------------------------------------------------------------------------------------"); } } if (NumeroCAE != null && NumeroCAE != string.Empty) { ComprobanteElectronico ce = new ComprobanteElectronico(); ce.PuntoVenta = puntoVta.ToString(); ce.TipoComprobanteFEID = tipoCbe; ce.TipoConceptoFEID = tipoConcepto; ce.TipoDocumentoFEID = tipoDocumento; ce.NumeroDocumento = numeroDocumento.ToString(); ce.NumeroFactura = nroFactura.ToString(); ce.FechaFE = DateTime.Now; ce.Total = total; ce.TotalConcepto = totalConcepto; ce.Neto = neto; ce.Exento = exento; ce.TotalTributos = totalTributos; ce.TotalIVA = totalIva; ce.FechaVencimientoCae = afip.fechaCAE; ce.NumeroCae = NumeroCAE; ce.EmpresaFacturacionID = int.Parse(ds.Tables[0].Rows[0]["EmpresaFacturacionID"].ToString()); IoC.GetObjectDominio <IComprobanteElectronicoDominio>().Guardar(ce); } //datet.FechaCae = sVencimientoCae; //admGuiaO.FechaVencimientoCAI = sVencimientoCae; //admGuiaO.NroGuia = int.Parse(nroFactura.ToString()); } catch (Exception ex) { using (System.IO.StreamWriter archivo = System.IO.File.AppendText(@"C:\log\LogFactura.log")) { archivo.WriteLine("AnularFactura.aspx.cs linea 786-------------------------------------------------------------------------------------"); archivo.WriteLine(ex.Message); archivo.WriteLine("--------------------------------------------------------------------------------------"); } ex = new Exception("Error al crear la nota de credito para asociar a la factura. " + ex.Message); throw ex; } //Session["AdmGuia"] = admGuiaO; //this.txtNroGuia.Text = admGuiaO.NroGuia.ToString(); // GuardarFactura(agencia.TipoImpresionGuiaId, (int)NegociosSisPackInterface.SisPack.TipoValidacionEmision.CAE); } catch (Exception ex) { oAgencia = null; ex = new Exception("Error al crear la nota de credito para asociar a la factura. No se puede conectar con el WS de la AFIP" + ex.Message); throw ex; } } /////////************************************************************************************************************************////// factura = null; oAgencia = null; return(bOk); } else { oAgencia = null; Exception ex = new Exception("Solo la agencia emisora puede anular la factura."); throw ex; } } catch (Exception ex) { throw ex; } }
private DsFactura BuscarPorTipo() { IFactura factura = FacturaFactory.GetFactura(); try { //Habilito los validadores para el buscar BaseValidator bv; bv = (BaseValidator)this.phValidTipoGuia.FindControl("validTipoGuia"); bv.Enabled = true; bv.Validate(); if (!bv.IsValid) { return(null); } bv = (BaseValidator)this.phValidNroSucursal.FindControl("validNroSucursal"); bv.Enabled = true; bv.Validate(); if (!bv.IsValid) { return(null); } bv = (BaseValidator)this.phValidNroSucursal.FindControl("validNroSucursalInv"); bv.Enabled = true; bv.Validate(); if (!bv.IsValid) { return(null); } bv = (BaseValidator)this.phValidNroGuia.FindControl("validNroGuia"); bv.Enabled = true; bv.Validate(); if (!bv.IsValid) { return(null); } bv = (BaseValidator)this.phValidNroGuia.FindControl("validNroGuiaInv"); bv.Enabled = true; bv.Validate(); if (!bv.IsValid) { return(null); } factura.TipoGuia = this.ddlTipoGuia.SelectedValue.Trim(); factura.NroSucursalGuia = this.txtNroSucursal.Text.Trim().Equals("")? "0" : this.txtNroSucursal.Text; factura.NroGuia = this.txtNroGuia.Text.Trim().Equals("")? 0 : Convert.ToInt32(this.txtNroGuia.Text); DsFactura dsFactura = factura.GetFacturaONE(); this.txtTipoGuia.Text = factura.TipoGuia; return(dsFactura); } catch (Exception ex) { throw new Exception("Errores.Invalidos.CodigoBarrasLongitud"); } finally { factura = null; } }
private DsFactura BuscarPorCodigo() { IFactura factura = FacturaFactory.GetFactura(); try { BaseValidator bv; bv = (BaseValidator)this.phValidTipoGuia.FindControl("validCodigoBarra"); bv.Enabled = true; bv.Validate(); if (!bv.IsValid) { return(null); } if (this.txtCodigoBarra.Text.Length >= 10) { // obtengo el tipo de factura del código de barras int codigoTipoGuia = 0; codigoTipoGuia = int.Parse(this.txtCodigoBarra.Text.Substring(0, 1)); if (codigoTipoGuia == (int)NegociosSisPackInterface.SisPack.CodigoTipoGuia.A) { factura.TipoGuia = "A"; } else if (codigoTipoGuia == (int)NegociosSisPackInterface.SisPack.CodigoTipoGuia.B) { factura.TipoGuia = "B"; } else if (codigoTipoGuia == (int)NegociosSisPackInterface.SisPack.CodigoTipoGuia.R) { factura.TipoGuia = "R"; } else if (codigoTipoGuia == (int)NegociosSisPackInterface.SisPack.CodigoTipoGuia.E) { factura.TipoGuia = "E"; } else { throw new Exception("Errores.Invalidos.CodigoBarrasLongitud"); } factura.NroSucursalGuia = this.txtCodigoBarra.Text.Substring(1, 4); factura.NroGuia = Convert.ToInt32(this.txtCodigoBarra.Text.Substring(5)); DsFactura dsFactura = factura.GetFacturaONE(); this.txtTipoGuia.Text = factura.TipoGuia; return(dsFactura); } else { throw new Exception("Errores.Invalidos.CodigoBarrasLongitud"); } } catch (Exception ex) { throw new Exception("Errores.Invalidos.CodigoBarrasLongitud"); } finally { factura = null; } }
private IFactura CargarDatosFactura(int GuiaID) { try { DsDatosGenerarFactura dsDatosFacturasAGenerar; if (Session["DatosFacturasARealizarConformacionMasivaCB"] != null) { dsDatosFacturasAGenerar = (DsDatosGenerarFactura)Session["DatosFacturasARealizarConformacionMasivaCB"]; } else { dsDatosFacturasAGenerar = new DsDatosGenerarFactura(); } // Genero la factura IFactura oFactura = FacturaFactory.GetFactura(); // Busco los datos para registrar la factura DsDatosGenerarFactura.DatosRow drDatosFac = ((DsDatosGenerarFactura.DatosRow[])dsDatosFacturasAGenerar.Datos.Select("guiaid = " + GuiaID.ToString()))[0]; // Cargo los datos de la factura a registrar // Reviso cual es el tipo de cliente al cual se le va a facturar el remito if (drDatosFac.TipoDeCliente == (int)NegociosSisPackInterface.SisPack.TipoCliente.Corporativo) { // Se le va a facturar a un cliente coorporativo oFactura.ClienteID = drDatosFac.ClienteID; oFactura.ClienteEventualID = 0; } else { // Se le va a facturar a un cliente eventual. Reviso si el cliente esta registrado. // if (drDatosFac.ClienteID == 0) // { // El cliente no esta registrado. Lo registro IClienteEventual datosClienteEventual = ClienteEventualFactory.GetClienteEventual(); datosClienteEventual.Nombre = drDatosFac.Nombre; datosClienteEventual.Apellido = drDatosFac.Apellido; datosClienteEventual.CondicionIva = (NegociosSisPackInterface.SisPack.CondicionIva)drDatosFac.CondicionIVAID; datosClienteEventual.NroCuit = drDatosFac.CUIT; datosClienteEventual.TipoDocumento = (NegociosSisPackInterface.SisPack.TipoDocumento)drDatosFac.TipoDocumento; datosClienteEventual.NroDocumento = Utiles.Validaciones.obtieneEntero(drDatosFac.NumeroCliente); // Indico que el cliente eventual tiene cargado un domicilio datosClienteEventual.TieneDomicilio = true; // Cargo los datos del domicilio datosClienteEventual.Domicilio.DomicilioID = drDatosFac.DomicilioID; datosClienteEventual.Domicilio.Calle = drDatosFac.Calle; datosClienteEventual.Domicilio.CalleNro = drDatosFac.CalleNro; datosClienteEventual.Domicilio.Depto = drDatosFac.Departamento; datosClienteEventual.Domicilio.Telefono = drDatosFac.Telefono; datosClienteEventual.Domicilio.Fax = drDatosFac.Fax; datosClienteEventual.Domicilio.Localidad.LocalidadID = drDatosFac.LocalidadID; datosClienteEventual.Domicilio.EsEventual = "1"; // Reviso si tengo que guardar el domicilio del cliente if (datosClienteEventual.Domicilio.DomicilioID == 0 && datosClienteEventual.Domicilio.Calle != "") { // Tengo que guardarlo datosClienteEventual.Domicilio.Guardar(); } oFactura.ClienteID = 0; oFactura.ClienteEventualID = drDatosFac.ClienteID; oFactura.ClienteEventual = datosClienteEventual; // datosClienteEventual.Guardar(); // drDatosFac.ClienteID = datosClienteEventual.ClienteEventualID; // } } // Reviso si el cliente de la factura es un cliente coorporativo if (oFactura.ClienteID != 0) { // Es un cliente coorporativo. Busco sus datos fiscales ICliente datosCliente = ClienteFactory.GetCliente(); datosCliente.ClienteID = oFactura.ClienteID; datosCliente.Consultar(); // Cargo los datos fiscales del cliente oFactura.CondicionIVAAgentePago = (int)datosCliente.CondicionIva; oFactura.NroCUITAgentePago = datosCliente.NroCuit; } // Reviso si el cliente de la factura es un cliente eventual registrado else if (oFactura.ClienteEventualID != 0) { // Se trata de un cliente eventual registrado. Busco sus datos fiscales IClienteEventual datosClienteEventual = ClienteEventualFactory.GetClienteEventual(); datosClienteEventual.ClienteEventualID = oFactura.ClienteEventualID; datosClienteEventual.Consultar(); // Cargo los datos fiscales del cliente oFactura.CondicionIVAAgentePago = (int)datosClienteEventual.CondicionIva; oFactura.NroCUITAgentePago = datosClienteEventual.NroCuit; } else { // Se trata de un cliente eventual // Cargo los datos fiscales del cliente oFactura.CondicionIVAAgentePago = (int)oFactura.ClienteEventual.CondicionIva; oFactura.NroCUITAgentePago = oFactura.ClienteEventual.NroCuit; } // Devuelvo los datos return(oFactura); } catch (Exception ex) { // Reviso cual es el motivo de la excepción if (ex.Message.IndexOf(" ya esta facturado", 0) > 0 || ex.Message.IndexOf("información del CAI para el tipo de guía") > 0) { // La exepción fue por que el remito ya estaba facturado throw ex; } else { throw new Exception("Error al generar las facturas de los remitos"); } } }
//DsOrdenRetiroImprimir.DatosRow dsoRdenes; #region Page_Load private void Page_Load(object sender, System.EventArgs e) { //TextWriterTraceListener myListener = new TextWriterTraceListener("TextWriterOutput2.log", "myListener"); //myListener.WriteLine("Inicia Load de Imprimirguiablanco.aspx."); DsGuiaFacturaImpresion ds = (DsGuiaFacturaImpresion)Session["DatosGuia"]; //DsOrdenRetiroImprimir dsoRdenes = (DsOrdenRetiroImprimir)Session["imprimirOrden"]; DsHojaRutaRepartidor dsoRdenes = (DsHojaRutaRepartidor)Session["imprimirOrden"]; DsOrdenRetiroImprimir.DatosRow dsOrdenR; int cantCopias = 0; string nombreArchivo = ""; //SFE. Codigo barras AFIP string nombreArchivoCBAFIP = ""; Boolean EsReImpresion = false; bool esFacturaRemito = false; Boolean EsFacturaConceptoFacturacion = false; string textoDorso = ""; bool esGuiaRendicion = false; string tipoGuia = ""; // Obtengo el texto del dorso de la guía //IGuiaDorso guiaDorso = GuiaDorsoFactory.GetGuiaDorso(); //guiaDorso.UnidadNegocioID = UnidadNegocioID; //guiaDorso.Consultar(); //string textoDorso = guiaDorso.Texto; // Obtengo el texto del dorso de la guía por la empresa de facturacion IGuia guia = GuiaFactory.GetGuia(); if (ds != null) { double pesototal50 = ds.Datos[0].PesoTotal != null ? ds.Datos[0].PesoTotal : 0; // ds.Datos[0].; double pesoButlos50 = ds.Datos[0].PesoBulto != null ? ds.Datos[0].PesoBulto : 0; string canBul = ds.Datos[0].IsCantidadBultosTotalNull()?"0": ds.Datos[0].CantidadBultosTotal.ToString(); string remito = ds.Datos[0].IsRemitoClienteNroNull() ? "0" : ds.Datos[0].RemitoClienteNro.ToString(); string DomicilioRem = ds.Datos[0].IsDireccionRemitenteNull()?"N/A": ds.Datos[0].DireccionRemitente.ToString(); string remi = ds.Datos[0].IsNombreRemitenteNull() ? "" : ds.Datos[0].NombreRemitente.ToString(); if (remi == "") { remi = ds.Datos[0].IsNombreEmpresaRemitenteNull() ? "" : ds.Datos[0].NombreEmpresaRemitente.ToString(); } string doc = ds.Datos[0].IsCUITEmpresaNull() ? "" : ds.Datos[0].CUITEmpresa.ToString(); if (pesototal50 > 50 || pesoButlos50 > 50)//mayor a 50 { System.Web.UI.Control impresion; impresion = Page.LoadControl("uc/ImprimirDeclaracionJuradaEV.ascx"); GuiaDominio gd = new GuiaDominio(); string text = gd.getTextoDorso(0).ToString(); textoDorso = text; /* inicio declaracion jurada*/ //string existeDJ = gd.GetDeclaracionJurada(ds.Datos[0].GuiaID).ToString(); //if (existeDJ == "")//es para que no re imprima la declaracion jurada que se emitio // //FQuiroga 26/11 //{ // //declaracion jurada // if (ds.Datos[0].EsFleteCobrar == true && remito == "0") // {//si es un fpd y pesa mas de 50 y no tiene remito // //tiene que gaurda el numero de declaracion jurada // string DJ = gd.GuiaDCINS(ds.Datos[0].GuiaID).ToString(); // LlenarControlDJ(impresion, remi, DomicilioRem, pesototal50, canBul, doc, DJ); // phImpresion.Controls.Add(impresion); // // hago un salto de página // LiteralControl lt = new LiteralControl("<br style='page-break-after: always'>"); // // no hace salto de página para la última hoja... // phImpresion.Controls.Add(lt); // } // if ((ds.Datos[0].TipoGuia == "B" || ds.Datos[0].TipoGuia == "A") && remito == "0") // {//eventuales sin remito // string DJ = gd.GuiaDCINS(ds.Datos[0].GuiaID).ToString(); //tiene que guardar declaracion // LlenarControlDJ(impresion, remi, DomicilioRem, pesototal50, canBul, doc, DJ); // phImpresion.Controls.Add(impresion); // // hago un salto de página // LiteralControl lt = new LiteralControl("<br style='page-break-after: always'>"); // // no hace salto de página para la última hoja... // phImpresion.Controls.Add(lt); // } //} /* fin declaracion jurada*/ } else { //34 y35 bultos IEmpresaFacturacion empresa = EmpresaFacturacionFactory.GetEmpresaFacturacion(); try { empresa.EmpresaFacturacionID = ds.Datos[0].EmpresaFacturacionID; } catch (Exception) { throw new Exception("No se configuró la empresa de facturacion para la agencia emisora de la guia."); } empresa.Consultar(); textoDorso = empresa.Texto; } // SFE: Imprimir la leyenda "Guia Rendicion" y el Nro de Rendicion si es Guia de Rendicion // IGuia guia = GuiaFactory.GetGuia(); guia.GuiaID = ds.Datos[0].GuiaID; guia.ConsultarCompletoByGuiaID(); //if (ds.Datos.Rows[0].IsEsFacturaConceptoFacturacionNull() == false && dr.EsFacturaConceptoFacturacion //if (|| (ds.Datos.Rows[0].IsNull("EsFacturaConceptoFacturacion") == false && Convert.ToBoolean( ds.Datos.Rows[0]["EsFacturaConceptoFacturacion"] Boolean _esFacturaConceptoFacturacion = false; try { _esFacturaConceptoFacturacion = Convert.ToBoolean(ds.Datos.Rows[0]["EsFacturaConceptoFacturacion"]); } catch { _esFacturaConceptoFacturacion = false; } esGuiaRendicion = false; string nroRendicionGuia = ""; if (_esFacturaConceptoFacturacion == false) { guia.GuiaID = ds.Datos[0].GuiaID; guia.ConsultarCompletoByGuiaID(); if (guia.ClasificacionGuiaID == NegociosSisPackInterface.SisPack.ClasificacionGuia.Rendicion) { esGuiaRendicion = true; nroRendicionGuia = guia.GetNroRendicionGuia(); if (nroRendicionGuia != "") { nroRendicionGuia = "Nro de Rendición: " + nroRendicionGuia; } ds.Datos[0].Observaciones = nroRendicionGuia; } // SFE: Imprimir la leyenda "Guia Rendicion" y el Nro de Rendicion si es Guia de Rendicion } } if (dsoRdenes != null) { IEmpresaFacturacion empresa = EmpresaFacturacionFactory.GetEmpresaFacturacion(); empresa.EmpresaFacturacionID = 1;// Convert.ToInt32(dsoRdenes.Ordenes.Rows.Datos[0].EmpresaFacturacion.ToString()); empresa.Consultar(); textoDorso = empresa.Texto; //cargo las ordenes de retiro DsOrdenRetiroImprimir dsOrdenes2 = new DsOrdenRetiroImprimir(); IOrdenRetiro ordenes = OrdenRetiroFactory.GetOrdenRetiroFactory(); string todas = ""; foreach (DsHojaRutaRepartidor.OrdenesRow dsss in dsoRdenes.Ordenes.Rows) { if (todas == "") { todas = dsss.OrdenRetiroID; } else { todas = todas + "," + dsss.OrdenRetiroID; } } dsOrdenes2 = ordenes.GetOrdenRetiroPrint(todas); foreach (DsOrdenRetiroImprimir.DatosRow drOrd in dsOrdenes2.Datos) { System.Web.UI.Control impresion; impresion = Page.LoadControl("uc/ImprimirOrdenRetiro.ascx"); LlenarControlOrdenes(drOrd, impresion, nombreArchivo); phImpresion.Controls.Add(impresion); // hago un salto de página LiteralControl lt = new LiteralControl("<br style='page-break-after: always'>"); // no hace salto de página para la última hoja... phImpresion.Controls.Add(lt); } } //if (dsConcepto != null) { // try // { // _esFacturaConceptoFacturacion = Convert.ToBoolean(dsoRdenes.Datos.Rows[0]["EsFacturaConceptoFacturacion"]); // } // catch // { // _esFacturaConceptoFacturacion = false; // } // foreach (DsGuiaFacturaImpresion.DatosRow drCon in dsConcepto.Datos.Rows) // { // System.Web.UI.Control impresion; // impresion = Page.LoadControl("uc/ImprimirGuiaBlanco.ascx"); // LlenarControl(drCon, impresion, nombreArchivo); // phImpresion.Controls.Add(impresion); // // hago un salto de página // LiteralControl lt = new LiteralControl("<br style='page-break-after: always'>"); // // no hace salto de página para la última hoja... // phImpresion.Controls.Add(lt); // if (drCon.IsEsFacturaConceptoFacturacionNull() == false && drCon.EsFacturaConceptoFacturacion) // { // EsFacturaConceptoFacturacion = true; // // Se trata de una factura de un concepto de facturación. // // 16/10/2013. Se solicito que si se trata de un concepto de facturacion se impriman la cantidad de cuerpos que se definen en el ABM de conceptos de facturacion. // IConceptoFacturacion concepto = ConceptoFacturacionFactory.GetConceptoFacturacion(); // concepto.GetOne(148); // if (concepto.CantCuerposImprGuia > 0) // { // cantCopias = concepto.CantCuerposImprGuia ?? 0; // } // else // { // IFactura factura = FacturaFactory.GetFactura(); // cantCopias = factura.GetCantCuerposImprFacturaRemito(); // factura = null; // } // } // } //} // }Cargo los comprobantes if (ds != null) { int ComprobanteActual = 1; foreach (DsGuiaFacturaImpresion.DatosRow dr in ds.Datos.Rows) { // Reviso si se paso la cantidad de copias a imprimir o hay que obtenerlo de los parametros if (Request.QueryString["CantCopias"] == "" || Request.QueryString["CantCopias"] == null) { // No se paso la cantidad de copias a imprimir. // Obtengo de los parámetros generales cuántas copias del cuerpo se deben imprimir en la agencia origen /* VSA 01-09-2009 Permitir parametrizar la cantidad de copias a imprimir para la guía */ // Reviso si se trata de una guía o factura if (dr.IsEsFacturaConceptoFacturacionNull() == false && dr.EsFacturaConceptoFacturacion) { EsFacturaConceptoFacturacion = true; // Se trata de una factura de un concepto de facturación. // 16/10/2013. Se solicito que si se trata de un concepto de facturacion se impriman la cantidad de cuerpos que se definen en el ABM de conceptos de facturacion. IConceptoFacturacion concepto = ConceptoFacturacionFactory.GetConceptoFacturacion(); concepto.GetOne(dr.ConceptoFacturacionID); if (concepto.CantCuerposImprGuia > 0) { cantCopias = concepto.CantCuerposImprGuia ?? 0; } else { IFactura factura = FacturaFactory.GetFactura(); cantCopias = factura.GetCantCuerposImprFacturaRemito(); factura = null; } } else if (dr.IsEsFacturaRemitoNull() || dr.EsFacturaRemito == false) { // Se trata de una guía // Verifico si en el campo "CantidadCopiasImprimir" viene asignada la cantidad de copias, si es asi, es porque se llamo desde la Hoja de Ruta del Repartidor y se esta reimprimiendo una guia desde ese modulo // Si no se debe buscar en la base la cantidad de copias a imprimir. if (((DsGuiaFacturaImpresion.DatosRow)ds.Datos.Rows[0]).IsCantidadCopiasImprimirNull()) { // Debo buscar en la base la cantidad de copias a imprimir. IGuia cantAImprGuia = GuiaFactory.GetGuia(); cantAImprGuia.GuiaID = ((DsGuiaFacturaImpresion.DatosRow)ds.Datos.Rows[0]).GuiaID; cantAImprGuia.UnidadNegocioID = UnidadNegocioID; cantCopias = cantAImprGuia.GetCantCuerposImprGuia(); cantAImprGuia = null; } else { //Viene asignada la cantidad de copias, se llamo desde la Hoja de Ruta del Repartidor y se esta reimprimiendo una guia desde ese modulo try { cantCopias = ((DsGuiaFacturaImpresion.DatosRow)ds.Datos.Rows[0]).CantidadCopiasImprimir; } catch { cantCopias = 1; } } esFacturaRemito = false; } else { // Se trata de una factura IFactura factura = FacturaFactory.GetFactura(); cantCopias = factura.GetCantCuerposImprFacturaRemito(); factura = null; esFacturaRemito = true; } } else { // Si se paso la cantidad de copias a imprimir cantCopias = Utiles.Validaciones.obtieneEntero(Request.QueryString["CantCopias"]); EsReImpresion = true; // Reviso si se trata de una guía o factura if (dr.IsEsFacturaRemitoNull() || dr.EsFacturaRemito == false) { esFacturaRemito = false; } else if (dr.IsEsFacturaConceptoFacturacionNull() == false && dr.EsFacturaConceptoFacturacion) { // Se trata de una factura de un concepto de facturación EsFacturaConceptoFacturacion = true; } else { esFacturaRemito = true; } if (dr.IsEsFacturaConceptoFacturacionNull() == false && dr.EsFacturaConceptoFacturacion) { // Se trata de una factura de un concepto de facturación EsFacturaConceptoFacturacion = true; } } //} // Cargo las copias del comprobante que se esta procesando for (int i = 0; i < cantCopias; i++) { System.Web.UI.Control impresion; if (guia.ClasificacionGuiaID == NegociosSisPackInterface.SisPack.ClasificacionGuia.UnidadLogistica) { impresion = Page.LoadControl("uc/ImprimirGuiaUnidadLogistica.ascx"); } else { impresion = Page.LoadControl("uc/ImprimirGuiaBlanco.ascx"); } LlenarControl(dr, impresion, nombreArchivo); // cargo el control de impresión... impresion.ID = "ImpreBlanco" + i.ToString(); // Creo la imagen del CB if (i == 0) { nombreArchivo = CrearImagenCB(((IGuiaImpresion)impresion).TipoGuia, ((IGuiaImpresion)impresion).NroSucursal, ((IGuiaImpresion)impresion).NroGuia); // SFE: Codigo Barras AFIP nombreArchivoCBAFIP = CrearImagenCBAFIP(((IGuiaImpresion)impresion).TipoGuia, ((IGuiaImpresion)impresion).NroSucursal, ((IGuiaImpresion)impresion).NumeroCAI, ((IGuiaImpresion)impresion).FechaVencimientoCAI); } // Termino de cargar los datos ((IGuiaImpresion)impresion).RutaCodigoBarras = nombreArchivo + "-" + this.AgenciaConectadaID.ToString(); // SFE: Codigo Barras AFIP. ((IGuiaImpresion)impresion).RutaCodigoBarrasAFIP = nombreArchivoCBAFIP + "-" + this.AgenciaConectadaID.ToString(); if (EsReImpresion == false) { ((IGuiaImpresion)impresion).DescripcionFormulario = ObtenerDescripcion(i + 1, EsFacturaConceptoFacturacion); ((IGuiaImpresion)impresion).EsReimpresion = false; } else { ((IGuiaImpresion)impresion).DescripcionFormulario = ObtenerDescripcion(3, EsFacturaConceptoFacturacion); ((IGuiaImpresion)impresion).EsReimpresion = true; } ((IGuiaImpresion)impresion).TextoDorso = textoDorso; ((IGuiaImpresion)impresion).EsGuiaRendicion = esGuiaRendicion; ((IGuiaImpresion)impresion).EsFacturaRemito = esFacturaRemito; ((IGuiaImpresion)impresion).EsFacturaConceptoFacturacion = EsFacturaConceptoFacturacion; phImpresion.Controls.Add(impresion); // hago un salto de página //tipoGuia = dr.IsTipoGuiaNull() ? "" : dr.TipoGuia; //System.Web.HttpBrowserCapabilities browser = Request.Browser; //string name = browser.Browser; //float version = (float)(browser.MajorVersion + browser.MinorVersion); //if ((name != "Chrome" && version >= 8) && (name != "Firefox" && version >= 8) && (name == "IE" && version > 8) && (tipoGuia == "R")) //{ LiteralControl lt = new LiteralControl("<br style='page-break-after: always'>"); // no hace salto de página para la última hoja... if (i + 1 < cantCopias || ComprobanteActual < ds.Datos.Rows.Count) { phImpresion.Controls.Add(lt); } //} } ComprobanteActual++; } //myListener.WriteLine("Finaliza Load de Imprimirguiablanco.aspx."); //myListener.Flush(); } }