private Boolean GuardarDetalle(clsCabeceraComprobante dato) { try { int secuencia = 0; foreach (var item in dato.Detalle) { secuencia = secuencia + 1; using (EntitiesContabilidad2 ent = new EntitiesContabilidad2()) { DetalleComprobante det = new DetalleComprobante() { IdEmpresa = dato.IdEmpresa, cabecera_comprobante = dato.numero_comprobante, linea_comprobante = secuencia, cuenta = item.cuenta, debe = item.debe, haber = item.haber }; ent.AddToDetalleComprobante(det); ent.SaveChanges(); } } return(true); } catch (Exception) { return(false); } }
public ActionResult Buscar(ComprobanteViewModel c) { try { //ViewBag.Result1 = categoriaApiClienat.categorias(); DetalleComprobante dc = new DetalleComprobante(); dc.idComprobante = c.idComprobante; List <DetalleComprobante> model = comprobanteApiClient.buscarDetalleComprobante(dc); if (model == null) { ViewBag.error = "si"; ViewBag.error2 = "No se ha encontrado el comprobante."; } else { ViewBag.error = "no"; ViewBag.data = model; } return(View()); } catch { return(RedirectToAction("Error")); } }
public long CerrarKiosco(ComprobanteKioscoDto kiosco, TipoComprobante tipo) { using (var context = new ModeloXCommerceContainer()) { //GENERO DETALLE DE CAJA var cfId = context.Personas.OfType <Cliente>().FirstOrDefault(x => x.Dni == "99999999").Id; if (cfId == null) { throw new Exception("Falta consumidor final"); } var comp = new ComprobanteFactura { ClienteId = cfId, Descuento = kiosco.Descuento, Fecha = DateTime.Now, Numero = NumeroDeComprobante.UltimoNumeroComprobante(), TipoComprobante = tipo, UsuarioId = Entidad.Entidad.UsuarioId, SubTotal = kiosco.SubTotal, Total = kiosco.Total, DetalleComprobantes = new List <DetalleComprobante>() }; context.Comprobantes.Add(comp); var list = new List <DetalleComprobante>(); foreach (var items in kiosco.Items) { var detComp = new DetalleComprobante { ComprobanteId = comp.Id, SubTotal = items.SubTotal, Codigo = items.CodigoProducto, Cantidad = items.Cantidad, PrecioUnitario = items.PrecioUnitario, Descripcion = items.Descripcion, ArticuloId = items.ArticuloId }; list.Add(detComp); context.DetalleComprobantes.Add(detComp); } comp.DetalleComprobantes = list; context.SaveChanges(); //GENERAR MOVIMIENTO MovimientoServicio m = new MovimientoServicio(); m.GenerarMovimiento(new MovimientoDto { CajaId = Entidad.Entidad.CajaId, ComprobanteId = comp.Id, Fecha = DateTime.Now, Monto = kiosco.Total, TipoMovimento = TipoMovimiento.Ingreso, UsuarioId = Entidad.Entidad.UsuarioId, Descripcion = $"FC_{comp.TipoComprobante}_{comp.Numero.ToString("0000")}_{comp.Fecha.ToString("ddmmyyyy")}" }); return(comp.Id); } }
private static DetalleComprobanteDto ToDetalleComprobanteDto(DetalleComprobante detalleComprobante, List <TipoDocumento> tiposDoc, List <TipoConcepto> tiposConcepto) { if (detalleComprobante == null) { return(null); } DetalleComprobanteDto dto = new DetalleComprobanteDto(); dto.Id = detalleComprobante.Id; dto.CbteFecha = detalleComprobante.CbteFch; dto.CbteDesde = detalleComprobante.CbteDesde; dto.CbteHasta = detalleComprobante.CbteHasta; dto.Concepto = detalleComprobante.Concepto; dto.DocNro = detalleComprobante.DocNro; dto.DocTipo = detalleComprobante.DocTipo; StringBuilder sbDocTipo = new StringBuilder(); sbDocTipo.Append(detalleComprobante.DocTipo.ToString()); if (tiposDoc != null) { TipoDocumento tipoDoc = tiposDoc.Where(d => d.CodigoAfip == detalleComprobante.DocTipo).FirstOrDefault(); if (tipoDoc != null) { sbDocTipo.AppendFormat(" ({0}) ", tipoDoc.Descripcion); } } dto.DocTipoDesc = sbDocTipo.ToString(); StringBuilder sbConcepto = new StringBuilder(); sbConcepto.Append(detalleComprobante.Concepto.ToString()); if (tiposConcepto != null) { TipoConcepto tipoConcepto = tiposConcepto.Where(c => c.Id == detalleComprobante.Concepto).FirstOrDefault(); if (tipoConcepto != null) { sbConcepto.AppendFormat(" - {0} ", tipoConcepto.Descripcion); } } dto.ConceptoDesc = sbConcepto.ToString(); if (detalleComprobante.Resultado == ResultadoCbte.Aprobado) { dto.CAE = detalleComprobante.CAE; dto.CAEFechaVto = (DateTime)detalleComprobante.CAEFchVto; } if (detalleComprobante.Resultado == ResultadoCbte.Rechazado) { dto.Observaciones = ToObservacionComprobateDtoList(detalleComprobante.ObservacionComprobantes.ToList()); } return(dto); }
public async Task <IActionResult> Create(DetalleComprobante detalleComprobante) { if (!ModelState.IsValid) { return(BadRequest()); } await _detalleComprobanteServicio.Create(detalleComprobante); return(Ok(detalleComprobante)); }
/// <summary> /// obtiene los datos para notificar a los morosos /// </summary> /// <returns></returns> public List <Comprobante> notificarMorosos() { SqlConnection con = new SqlConnection(Conexion.Cadena); List <Comprobante> miLista = new List <Comprobante>(); try { con.Open(); string sql = "PA_Notificar"; SqlCommand comando = new SqlCommand(); comando = new SqlCommand(sql, con); comando.CommandType = System.Data.CommandType.StoredProcedure; SqlDataReader lector = comando.ExecuteReader(); while (lector.Read()) { EncabezadoComprobante enca = new EncabezadoComprobante(); DetalleComprobante deta = new DetalleComprobante(); Comprobante compro = new Comprobante(); enca.Estudiante = new UsuarioDatos().seleccionarUsuarioPorId(lector["idEstudiante"].ToString()); Libro miLibro = new Libro(); miLibro.Codigo = lector["libro"].ToString(); deta.Libro = new LibrosDatos().seleccionaLibro(miLibro); deta.fechaDevolucion = (DateTime)lector["fechaEntrega"]; compro.enc = enca; compro.det = deta; miLista.Add(compro); } } catch (Exception) { throw; } finally { con.Close(); } return(miLista); }
public long GenerarComprobanteCompra(ComprobanteCompraDTO dto) { using (var context = new ModeloXCommerceContainer()) { var nuevoComprobante = new ComprobanteCompra { ClienteId = dto.ClienteId, Descuento = dto.Descuento, ProveedorId = dto.ProveedorId, Fecha = dto.Fecha, Numero = 0, SubTotal = dto.SubTotal, Total = dto.Total, TipoComprobante = TipoComprobante.A, UsuarioId = dto.UsuarioId, DetalleComprobantes = new List <DetalleComprobante>() }; nuevoComprobante.Numero = 100_000_000 + (int)nuevoComprobante.Id; context.Comprobantes.Add(nuevoComprobante); var list = new List <DetalleComprobante>(); foreach (var it in dto.Items) { var detalle = new DetalleComprobante { ComprobanteId = nuevoComprobante.Id, SubTotal = it.SubtotalLinea, Codigo = it.CodigoProducto, Cantidad = it.CantidadProducto, PrecioUnitario = it.PrecioUnitario, Descripcion = it.DescripcionProducto, ArticuloId = it.ProductoId }; list.Add(detalle); context.DetalleComprobantes.Add(detalle); } nuevoComprobante.DetalleComprobantes = list; context.SaveChanges(); return(nuevoComprobante.Id); } }
private void btnAdd_Click(object sender, EventArgs e) { if (this.tabControlDetalle.SelectedTab.Name == "tabPageDocumentos") { return; } var detalleComprobante = new DetalleComprobante(); detalleComprobante.Concepto = string.Empty; if (this.tercero != null) { this.comprobante.Detalles.Add(detalleComprobante); this.LlenarDataGrid(); this.EvaluarTercero(); this.dataGridViewDetalles.Focus(); return; } MessageBox.Show("Tercero es requerido!", "Advertencia!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); }
public string Save(string proveedor, string date, string fechaPago, int formaDePago, string[] precioCosto, int[] cantidad, Guid[] idProducto, string[] precioVenta) { var listProveedor = GetProveedor(); var idProveedor = listProveedor.Where(x => x.RazonSocial == proveedor); using (var context = new AnimaliaPetShopEntities()) { using (var dbContextTransaction = context.Database.BeginTransaction()) { try { var message = string.Empty; db = Factory.Factory.CreateContextDataBase(); var head = SaveHead(idProveedor.First().IdProveedor, date, formaDePago, fechaPago, db); SaveProductChange(precioCosto, cantidad, idProducto, precioVenta); for (int i = 0; i < idProducto.Length; i++) { var detalleComprobante = new DetalleComprobante(); detalleComprobante.IdComprobante = head.IdComprobante; detalleComprobante.IdDetalleComprobante = Guid.NewGuid(); detalleComprobante.IdProducto = idProducto[i]; detalleComprobante.PrecioCosto = Convert.ToDecimal(precioCosto[i]); detalleComprobante.PrecioVenta = Convert.ToDecimal(precioVenta[i]); detalleComprobante.Cantidad = Convert.ToDecimal(cantidad[i]); db.DetalleComprobante.Add(detalleComprobante); } db.SaveChanges(); dbContextTransaction.Commit(); return(message = "EL comprobante fue guardado exitosamente"); } catch (Exception e) { throw new Exception(e.Message.ToString()); } } } }
private bool verifyQuantyty(DetalleComprobante comprobante, Product product) { if (product.IdCategory == (int)Enumeration.Category.Alimento) { if (product.IdSubCategory != (int)Enumeration.Subcategory.Suelto) { if (comprobante.Cantidad <= product.Cantidad) { return(true); } else { errorStock = String.Concat(product.Descripcion1); return(false); } } else { if (comprobante.Cantidad <= product.TotalKg) { return(true); } else { errorStock = String.Concat(product.Descripcion1); return(false); } } } else { if (comprobante.Cantidad <= product.Cantidad) { return(true); } else { errorStock = String.Concat(product.Descripcion1); return(false); } } }
private void AdicionarConcepto(Documento doc) { var detalleComprobante = new DetalleComprobante(); detalleComprobante.Documento = documento; tipoDocumento = TipoDocumento.Get(documento.TipoDocumentoID); detalleComprobante.Concepto = string.Concat(new string[] { " PAGO ", tipoDocumento.Descripcion, " Numero ", tipoDocumento.Codigo, "-", string.Format("{0:" + this.CalcularCerosIzquierda(tipoDocumento.CerosIzquierda) + "}", documento.Consecutivo) }); detalleComprobante.TotalDocumento = documento.Total - documento.TotalAbono; detalleComprobante.Total = documento.Total - documento.TotalAbono; this.comprobante.Detalles.Add(detalleComprobante); this.LlenarDataGrid(); this.EvaluarTercero(); }
public CommandContracts.Common.CommandResult Handle(InsertarActualizarDetalleComprobanteCommand command) { // if (command == null) throw new ArgumentException("Tiene que ingresar una cliente"); DetalleComprobante dominio = null; if (command.iddetallecomprobante.HasValue) { dominio = _DetalleComprobanteRepository.Get(x => x.iddetallecomprobante == command.iddetallecomprobante).LastOrDefault(); } else { dominio = new DetalleComprobante(); } dominio.idcomprobantepago = command.idcomprobantepago; dominio.idordentrabajo = command.idordentrabajo; dominio.igv = command.igv; dominio.subtotal = command.subtotal; dominio.total = command.total; dominio.recargo = command.recargo; dominio.descripcion = command.descripcion; try { if (!command.iddetallecomprobante.HasValue) { _DetalleComprobanteRepository.Add(dominio); } _DetalleComprobanteRepository.SaveChanges(); return(new InsertarActualizarDetalleComprobanteOutput() { iddetallecomprobante = dominio.iddetallecomprobante }); } catch (Exception ex) { throw; } }
public List <DetalleComprobante> listaDetalles(int id) { SqlConnection con = new SqlConnection(Conexion.Cadena); List <DetalleComprobante> miLista = new List <DetalleComprobante>(); try { con.Open(); string sql = "PA_verDetallesPorIdEnc"; SqlCommand comando = new SqlCommand(sql, con); comando.CommandType = System.Data.CommandType.StoredProcedure; comando.Parameters.AddWithValue("@id", id); SqlDataReader lector = comando.ExecuteReader(); while (lector.Read()) { DetalleComprobante det = new DetalleComprobante(); det.fechaDevolucion = (DateTime)lector["fechaEntrega"]; det.fechaPrestamo = (DateTime)lector["fechaPrestamo"]; Libro miLibro = new Libro(); miLibro.Codigo = lector["idLibro"].ToString(); det.Libro = new LibrosDatos().seleccionaLibro(miLibro); det.tipo = (TipoTramite)Enum.Parse(typeof(TipoTramite), lector["idTipoTramite"].ToString()); miLista.Add(det); } } catch (Exception) { throw; } finally { con.Close(); } return(miLista); }
//listarDetalleComprobante public List<DetalleComprobante> listarDetalleComprobante(string id) { List<DetalleComprobante> lista = new List<DetalleComprobante>(); var cn = cnx.getConexion(); cn.Open(); SqlCommand cmd = new SqlCommand("SP_LISTA_DETALLE_COMPROBANTE", cn); cmd.Parameters.AddWithValue("@idComprobante", id); cmd.CommandType = CommandType.StoredProcedure; SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { DetalleComprobante dtll = new DetalleComprobante(); Concepto cncp = new Concepto(); dtll.idDetalleComprobante = dr.GetInt64(0); cncp.concepto = dr.GetString(1); dtll.concepto = cncp; dtll.cantidad = dr.GetInt32(2); dtll.monto = dr.GetDecimal(3); dtll.fechaRegistro = dr.GetString(4); lista.Add(dtll); } cn.Close(); return lista; }
private Boolean RevertirD(clsCabeceraComprobante dato) { try { int secuencia = 0; foreach (var item in dato.Detalle) { secuencia = secuencia + 1; using (EntitiesContabilidad2 ent = new EntitiesContabilidad2()) { DetalleComprobante det = new DetalleComprobante() { IdEmpresa = dato.IdEmpresa, cabecera_comprobante = dato.numero_comprobante, linea_comprobante = secuencia, cuenta = item.cuenta, debe = item.haber, haber = item.debe }; ent.AddToDetalleComprobante(det); ent.SaveChanges(); } } return true; } catch (Exception) { return false; } }
public CorridaAutorizacionDto ProcesarCorrida(CorridaAutorizacionDto corridaDto, FECAEResponse feCAEResponse) { using (var ctx = new FacturaElectronicaEntities()) { CorridaAutorizacion corrida = ctx.CorridaAutorizacions.Where(c => c.Id == corridaDto.Id).First(); // Procesar Cabecera DetalleCabecera cabecera = new DetalleCabecera(); FECabResponse feCabResp = feCAEResponse.FeCabResp; cabecera.CantReg = feCabResp.CantReg; cabecera.CUIT = feCabResp.Cuit; cabecera.CbteTipo = feCabResp.CbteTipo; cabecera.FchProceso = DateTimeHelper.ConvertyyyyMMddhhmmssToDate(feCabResp.FchProceso); cabecera.Resultado = feCabResp.Resultado; cabecera.PtoVta = feCabResp.PtoVta; corrida.DetalleCabeceras.Add(cabecera); TipoComprobanteDto tipoCbteDto = cbteSvc.ObtenerTipoComprobantePorCodigoAfip(cabecera.CbteTipo); int tipoCbteId; if (tipoCbteDto != null) { tipoCbteId = tipoCbteDto.Id; } if (feCAEResponse.FeDetResp != null && feCAEResponse.FeDetResp.Count() > 0) { // Procesar Comprobantes DetalleComprobante detalleCbte = null; ObservacionComprobante observacionesCbte = null; foreach (FECAEDetResponse cbte in feCAEResponse.FeDetResp) { detalleCbte = new DetalleComprobante(); detalleCbte.Concepto = cbte.Concepto; detalleCbte.DocTipo = cbte.DocTipo; detalleCbte.DocNro = cbte.DocNro; detalleCbte.CbteDesde = cbte.CbteDesde; detalleCbte.CbteHasta = cbte.CbteHasta; detalleCbte.CbteFch = DateTimeHelper.ConvertyyyyMMddToDate(cbte.CbteFch); detalleCbte.Resultado = cbte.Resultado; if (cbte.Resultado == ResultadoCbte.Aprobado) { detalleCbte.CAE = cbte.CAE; detalleCbte.CAEFchVto = DateTimeHelper.ConvertyyyyMMddToDate(cbte.CAEFchVto); // Si fue aprobado agrego una entidad Comprobante Comprobante comprobante = new Comprobante(); comprobante.CAE = detalleCbte.CAE; comprobante.CAEFechaVencimiento = detalleCbte.CAEFchVto; comprobante.CbteDesde = detalleCbte.CbteDesde; comprobante.CbteHasta = detalleCbte.CbteHasta; comprobante.CbteFecha = detalleCbte.CbteFch; comprobante.PtoVta = cabecera.PtoVta; comprobante.FechaDeCarga = DateTime.Now; comprobante.TipoComprobante = ctx.TipoComprobantes.Where(tc => tc.CodigoAfip == cabecera.CbteTipo).FirstOrDefault(); if (detalleCbte.DocTipo == 80) // CUIT { ClienteDto clienteDto = clienteSvc.ObtenerClientePorCuit(detalleCbte.DocNro); if (clienteDto != null) { comprobante.ClienteId = clienteDto.Id; } } // #TODO: borrar //EstadoComprobanteDto estadoDto = this.cbteSvc.ObtenerEstado(CodigoEstadoCbte.NoVisualizado); //if (estadoDto != null) //{ // comprobante.EstadoId = estadoDto.Id; //} detalleCbte.Comprobantes.Add(comprobante); } else { if (cbte.Observaciones != null && cbte.Observaciones.Count() > 0) { foreach (Obs obs in cbte.Observaciones) { observacionesCbte = new ObservacionComprobante(); observacionesCbte.Code = obs.Code; observacionesCbte.Msg = obs.Msg; detalleCbte.ObservacionComprobantes.Add(observacionesCbte); } } } corrida.DetalleComprobantes.Add(detalleCbte); } } if (feCAEResponse.Events != null && feCAEResponse.Events.Count() > 0) { // Procesar Eventos DetalleEvento detalleEvento = null; foreach (Evt evento in feCAEResponse.Events) { detalleEvento = new DetalleEvento(); detalleEvento.Code = evento.Code; detalleEvento.Msg = evento.Msg; corrida.DetalleEventos.Add(detalleEvento); } } if (feCAEResponse.Errors != null && feCAEResponse.Errors.Count() > 0) { // Procesar Errores DetalleError detalleError = null; foreach (Err error in feCAEResponse.Errors) { detalleError = new DetalleError(); detalleError.Code = error.Code; detalleError.Msg = error.Msg; corrida.DetalleErrores.Add(detalleError); } } corrida.Procesada = true; ctx.SaveChanges(); return(ToCorridaDto(corrida, ctx.TipoDocumentoes.ToList(), ctx.TipoComprobantes.ToList(), ctx.TipoConceptoes.ToList())); } }
private void btnGuardar_Click(object sender, EventArgs e) { StringBuilder stringBuilder = new StringBuilder(); if (this.tercero != null) { this.comprobante.TerceroID = this.tercero.ID; } else { stringBuilder.Append("Tercero es requerido!\n"); } if (this.comprobante.Detalles.Count == 0) { stringBuilder.Append("No existen detalles! \n"); } IList <DetalleComprobante> detalles = this.comprobante.Detalles; foreach (DetalleComprobante current in detalles) { if (current.Concepto == string.Empty) { stringBuilder.Append("El concepto debe contener una descripción\n"); } if (current.Total <= 0m) { stringBuilder.Append("El total debe contener un valor\n"); } } if (this.comprobante.Total == 0m) { stringBuilder.Append("El total debe contener un valor\n"); } this.comprobante.TipoDocumentoID = this.tipoDocumento.ID; this.comprobante.FechaComprobante = new DateTime?(this.dtpFechaCreacion.Value); this.comprobante.FormaPago = Convert.ToString(this.cbCondicion.SelectedItem); if (this.comprobante.FormaPago == CHEQUE) { this.comprobante.NumeroCheque = this.txtNumeroCheque.Text; this.comprobante.BancoID = (this.cbBanco.SelectedItem as Banco).ID; this.comprobante.Sucursal = this.txtSucursal.Text; } this.comprobante.Observacion = this.txtObservacion.Text; this.comprobante.ImpresionDocumentoID = (this.cbImpresionComprobante.SelectedItem as ImpresionDocumento).ID; if (stringBuilder.Length > 0) { MessageBox.Show(stringBuilder.ToString(), "Advertencia!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } this.comprobante.UsuarioID = Entorno.USUARIO.ID; if (this.comprobante.ID == 0) { //this.tipoDocumento.Load(); this.comprobante.Consecutivo = this.tipoDocumento.ConsecutivoActual; this.comprobante.Save(); this.tipoDocumento.ConsecutivoActual++; this.tipoDocumento.Update(); using (IEnumerator <DetalleComprobante> enumerator2 = this.comprobante.Detalles.GetEnumerator()) { while (enumerator2.MoveNext()) { DetalleComprobante current2 = enumerator2.Current; if (current2.Documento != null) { documento = current2.Documento; //documento.LoadByComprobante(comprobante); documento.TotalAbono += current2.Total + current2.Retencion + current2.Descuento; if (preferencias.RedondeoSistema) { documento.TotalAbono = Math.Round(documento.TotalAbono, preferencias.NumeroDecimal); } else { if (preferencias.RedondeoInferior) { documento.TotalAbono = Math.Floor(documento.TotalAbono); } else { if (preferencias.RedondeoSuperior) { documento.TotalAbono = Math.Ceiling(documento.TotalAbono); } } } if (documento.TotalAbono >= documento.Total) { documento.EstadoDocumentoID = EstadoDocumento.FindByEstado(EstadoDocumento.PAGADO).ID; } else { documento.EstadoDocumentoID = EstadoDocumento.FindByEstado(EstadoDocumento.PAGADO_PARCIALMENTE).ID; } documento.Update(); } } } } if (this.dicDetallesComprobante != null && this.dicDetallesComprobante.Count > 0) { foreach (KeyValuePair <Documento, decimal> current3 in this.dicDetallesComprobante) { Documento key = current3.Key; //key.LoadByComprobante(); key.TotalAbono -= current3.Value; if (key.TotalAbono == 0m) { key.EstadoDocumentoID = EstadoDocumento.FindByEstado(EstadoDocumento.FACTURADO).ID; } else { key.EstadoDocumentoID = EstadoDocumento.FindByEstado(EstadoDocumento.PAGADO_PARCIALMENTE).ID; } key.Update(); } } foreach (DetalleComprobante current4 in this.comprobante.Detalles) { if (current4.Documento != null) { Documento documento2 = current4.Documento; //documento2.LoadByComprobante(); documento2.TotalAbono += current4.Total + current4.Retencion + current4.Descuento; if (documento2.TotalAbono >= documento2.Total) { documento2.EstadoDocumentoID = EstadoDocumento.FindByEstado(EstadoDocumento.PAGADO).ID; } else { documento2.EstadoDocumentoID = EstadoDocumento.FindByEstado(EstadoDocumento.PAGADO_PARCIALMENTE).ID; } documento2.Update(); } } this.comprobante.Update(); MessageBox.Show("Comprobante grabado con exito!", "SoluPYME " + Entorno.VERSION, MessageBoxButtons.OK, MessageBoxIcon.Asterisk); }
public CorridaAutorizacionDto ProcesarCorridaWsFeX(CorridaAutorizacionDto corridaDto, FEXResponseAuthorize feXCAEResponse, ClsFEXRequest feXCAERequest) { using (var ctx = new FacturaElectronicaEntities()) { CorridaAutorizacion corrida = ctx.CorridaAutorizacions.Where(c => c.Id == corridaDto.Id).First(); // Procesar Cabecera DetalleCabecera cabecera = new DetalleCabecera(); ClsFEXOutAuthorize feCabResp = feXCAEResponse.FEXResultAuth; if (feCabResp != null) { cabecera.CantReg = 1; // ByAd: revisar cabecera.CUIT = feCabResp.Cuit; cabecera.CbteTipo = feCabResp.Cbte_tipo; cabecera.FchProceso = DateTime.Now; // ByAd: revisar cabecera.Resultado = feCabResp.Resultado; cabecera.PtoVta = feCabResp.Punto_vta; corrida.DetalleCabeceras.Add(cabecera); TipoComprobanteDto tipoCbteDto = cbteSvc.ObtenerTipoComprobantePorCodigoAfip(cabecera.CbteTipo); int tipoCbteId; if (tipoCbteDto != null) { tipoCbteId = tipoCbteDto.Id; } // Procesar Comprobantes DetalleComprobante detalleCbte = null; ObservacionComprobante observacionesCbte = null; detalleCbte = new DetalleComprobante(); detalleCbte.Concepto = 1; // ByAd revisar: aca es prdoucto, servicios o ambos detalleCbte.DocTipo = 80; detalleCbte.DocNro = feCabResp.Cuit; detalleCbte.CbteDesde = feCabResp.Cbte_nro; detalleCbte.CbteHasta = feCabResp.Cbte_nro; detalleCbte.CbteFch = DateTimeHelper.ConvertyyyyMMddToDate(feCabResp.Fch_cbte); detalleCbte.Resultado = feCabResp.Resultado; if (feCabResp.Resultado == ResultadoCbte.Aprobado) { detalleCbte.CAE = feCabResp.Cae; detalleCbte.CAEFchVto = DateTimeHelper.ConvertyyyyMMddToDate(feCabResp.Fch_venc_Cae); // Si fue aprobado agrego una entidad Comprobante Comprobante comprobante = new Comprobante(); comprobante.CAE = detalleCbte.CAE; comprobante.CAEFechaVencimiento = detalleCbte.CAEFchVto; comprobante.CbteDesde = detalleCbte.CbteDesde; comprobante.CbteHasta = detalleCbte.CbteHasta; comprobante.CbteFecha = detalleCbte.CbteFch; comprobante.PtoVta = cabecera.PtoVta; comprobante.FechaDeCarga = DateTime.Now; comprobante.TipoComprobante = ctx.TipoComprobantes.Where(tc => tc.CodigoAfip == cabecera.CbteTipo).FirstOrDefault(); if (detalleCbte.DocTipo == 80) // CUIT { ClienteDto clienteDto = clienteSvc.ObtenerClientePorCuit(detalleCbte.DocNro); if (clienteDto != null) { comprobante.ClienteId = clienteDto.Id; } } // #TODO: borrar //EstadoComprobanteDto estadoDto = this.cbteSvc.ObtenerEstado(CodigoEstadoCbte.NoVisualizado); //if (estadoDto != null) //{ // comprobante.EstadoId = estadoDto.Id; //} detalleCbte.Comprobantes.Add(comprobante); } else { if (!String.IsNullOrEmpty(feCabResp.Motivos_Obs)) { observacionesCbte = new ObservacionComprobante(); observacionesCbte.Code = 1; // ByAd: hardcodeado, ya que este tipo no recibe observacionesCbte.Msg = feCabResp.Motivos_Obs; detalleCbte.ObservacionComprobantes.Add(observacionesCbte); } } corrida.DetalleComprobantes.Add(detalleCbte); } if (feXCAEResponse.FEXEvents != null && !String.IsNullOrEmpty(feXCAEResponse.FEXEvents.EventMsg)) { // Procesar Eventos DetalleEvento detalleEvento = null; detalleEvento = new DetalleEvento(); detalleEvento.Code = feXCAEResponse.FEXEvents.EventCode; detalleEvento.Msg = feXCAEResponse.FEXEvents.EventMsg; corrida.DetalleEventos.Add(detalleEvento); } if (feXCAEResponse.FEXErr != null && !String.IsNullOrEmpty(feXCAEResponse.FEXErr.ErrMsg)) { // Procesar Errores DetalleError detalleError = null; detalleError = new DetalleError(); detalleError.Code = feXCAEResponse.FEXErr.ErrCode; detalleError.Msg = feXCAEResponse.FEXErr.ErrMsg; corrida.DetalleErrores.Add(detalleError); } corrida.Procesada = true; ctx.SaveChanges(); return(ToCorridaDto(corrida, ctx.TipoDocumentoes.ToList(), ctx.TipoComprobantes.ToList(), ctx.TipoConceptoes.ToList())); } }
public List <DetalleComprobante> Sp_listar_detallecomprobantexidcomprobante(int idcomprobante) { List <DetalleComprobante> lista_detallecomprobante = null; DetalleComprobante detallecomprobante = null; try { con = conn.Conectar(); if (con != null) { cmd = new MySqlCommand("Sp_listar_detallecomprobantexidcomprobante", con) { CommandType = CommandType.StoredProcedure }; cmd.Parameters.Add(new MySqlParameter("@_idcomprobante", MySqlDbType.Int32)); cmd.Parameters[0].Value = idcomprobante; dr = cmd.ExecuteReader(); if (dr.HasRows) { lista_detallecomprobante = new List <DetalleComprobante>(); while (dr.Read()) { detallecomprobante = new DetalleComprobante() { Iddetallecomprobante = (int)dr["iddetallecomprobante"], Comprobante = new Comprobante() { Idcomprobante = (int)dr["idcomprobante"] }, Producto = new Producto() { Idproducto = (int)dr["idproducto"], Nombre = (string)dr["nombre"] }, Unidadequivalente = new UnidadEquivalente() { Idunidadequivalente = (int)dr["idunidadequivalente"], Unidadmedida = new UnidadMedida() { Sigla = (string)dr["umsigla"], } }, Nunidad = (decimal)dr["nunidad"], Pbruto = (decimal)dr["pbruto"], Ptara = (decimal)dr["ptara"], Pneto = (decimal)dr["pneto"], Preciounitario = (decimal)dr["preciounitario"], Subtotal = (decimal)dr["subtotal"], Igv = (decimal)dr["igv"], Total = (decimal)dr["total"], Estado = (int)dr["estado"] }; lista_detallecomprobante.Add(detallecomprobante); } } dr.Close(); } return(lista_detallecomprobante); } catch (MySqlException ex) { return(lista_detallecomprobante); throw ex; } finally { cmd.Dispose(); conn.Desconectar(con); } }
static void Main(string[] args) { //*** Ruta al escritorio del usuario ***// //var file1 = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "test.pdf"); //*** Directorio actual de la aplicación ***// //string directorio = Environment.CurrentDirectory; AutorizacionFacturas a = new AutorizacionFacturas(); //leo del sri DatosComprobante dt = a.ConsultarAutorizaciones("THOMAS0111ws"); Comprobante documento = new Comprobante(); documento.detalles = new List <DetalleComprobante>(); dt.comprobante = ""; dt.numeroAutorizacion = "2808201901179174314800120010010002033920020339210"; dt.ambiente = "PRODUCCION"; dt.mensaje = "NORMAL"; documento.archivo = @"C:\Users\guido\Desktop\CerverceriaSabai\LogoComputerEC.png"; documento.claveAcceso = "2808201901179174314800120010010002033920020339210"; dt.Ruc = "1714194451001"; documento.codDoc = "001-001-000203392"; documento.nombreComercial = "ComputerEC"; documento.direccion = "Homero Salas OE5-148 y Altar"; documento.razonSocial = "Pablo Rueda"; documento.fechaEmision = "11-09-2019"; documento.ruc = "1001001001001"; DetalleComprobante linea = new DetalleComprobante(); linea.impuestos = new List <DetalleImpuesto>(); linea.codigoPrincipal = "001"; linea.codigoAuxiliar = "001"; linea.cantidad = 1; linea.descripcion = "Computadora Portátil Marca DELL"; linea.detalleadicional1 = "CompDell"; linea.detalleadicional2 = "CompDell"; linea.detalleadicional3 = ""; linea.precioUnitario = (decimal)500.00f; linea.descuento = 0; linea.totalSinImpueto = linea.precioUnitario * linea.cantidad; DetalleImpuesto detalleimpuesto = new DetalleImpuesto(); detalleimpuesto.tarifa = 12; detalleimpuesto.valor = (linea.precioUnitario * detalleimpuesto.tarifa) / 100; linea.impuestos.Add(detalleimpuesto); documento.detalles.Add(linea); DetalleComprobante linea1 = new DetalleComprobante(); linea1.impuestos = new List <DetalleImpuesto>(); linea1.codigoPrincipal = "002"; linea1.codigoAuxiliar = "002"; linea1.cantidad = 2; linea1.descripcion = "Disco duro externo 2,5 1TB"; linea1.detalleadicional1 = "Disc1TB"; linea1.detalleadicional2 = "Disc1TB"; linea1.detalleadicional3 = ""; linea1.precioUnitario = (decimal)60.56f; linea1.descuento = 0; linea1.totalSinImpueto = linea1.precioUnitario * linea1.cantidad; DetalleImpuesto detalleimpuesto1 = new DetalleImpuesto(); detalleimpuesto1.tarifa = 12; detalleimpuesto1.valor = (linea1.precioUnitario * detalleimpuesto1.tarifa) / 100; linea.impuestos.Add(detalleimpuesto1); documento.detalles.Add(linea1); DetalleComprobante linea2 = new DetalleComprobante(); linea2.impuestos = new List <DetalleImpuesto>(); linea2.codigoPrincipal = "003"; linea2.codigoAuxiliar = "003"; linea2.cantidad = 3; linea2.descripcion = "Monitor de 19.5"; linea2.detalleadicional1 = "MONI195"; linea2.detalleadicional2 = "MONI195"; linea2.detalleadicional3 = ""; linea2.precioUnitario = (decimal)60.56f; linea2.descuento = 0; linea2.totalSinImpueto = linea2.precioUnitario * linea1.cantidad; DetalleImpuesto detalleimpuesto2 = new DetalleImpuesto(); detalleimpuesto2.tarifa = 12; detalleimpuesto2.valor = (linea2.precioUnitario * detalleimpuesto2.tarifa) / 100; linea2.impuestos.Add(detalleimpuesto2); documento.detalles.Add(linea2); DetalleComprobante linea3 = new DetalleComprobante(); linea3.impuestos = new List <DetalleImpuesto>(); linea3.codigoPrincipal = "004"; linea3.codigoAuxiliar = "004"; linea3.cantidad = 3; linea3.descripcion = "Monitor de 20.5"; linea3.detalleadicional1 = "MONI205"; linea3.detalleadicional2 = "MONI205"; linea3.detalleadicional3 = ""; linea3.precioUnitario = (decimal)60.56f; linea3.descuento = 0; linea3.totalSinImpueto = linea3.precioUnitario * linea3.cantidad; DetalleImpuesto detalleimpuesto3 = new DetalleImpuesto(); detalleimpuesto3.tarifa = 12; detalleimpuesto3.valor = (linea3.precioUnitario * detalleimpuesto3.tarifa) / 100; linea2.impuestos.Add(detalleimpuesto3); documento.detalles.Add(linea3); //*** Subtotales de la factura documento.importeTotal = 621.12m; documento.totalSinImpuetos = 621.12m; decimal ivatotal; ivatotal = detalleimpuesto.valor + detalleimpuesto2.valor; documento.totalConImpuestos = documento.totalSinImpuetos + ivatotal; //*** Datos de información adicional ***// //** Crea el estampado de los datos en la plantilla PDF //** factura-1-formato-cabecera.pdf (archivo de plantilla) //** factura-1-formato-totales.pdf (archivo de plantilla) //** genera el documento : archivotemporal.pdf totales_temporal // Properties.Settings.Default.PathDefecto + @"generadasfacturas\" + nombrepdf.pdf; string rutaPDF = @"C:\Users\guido\Desktop\CerverceriaSabai\generadasfacturas\"; //string rutaPDF = Properties.Settings.Default.FacturasGeneradas; string nombrePDF = "pdf.pdf"; string mensajeEstado; bool Genera = false; //mensajeEstado = GenerarRIDE.CreatePDF2(dt, documento, rutaPDF, nombrePDF); //if (mensajeEstado == "True") // System.Console.WriteLine("Se generó el PDF"); //else // System.Console.WriteLine(mensajeEstado); Genera = Generador.ReportePDF(documento, "FacturaEstandar", rutaPDF, nombrePDF); if (Genera) { System.Console.WriteLine("Se generó el PDF"); } else { System.Console.WriteLine("Ups! Algo pasó"); } // Metodos adicionales //GenerarRIDE.ManipulatePdfWaterMark(@"C:\Users\guido\Desktop\CerverceriaSabai\generadasfacturas\archivotemporal.pdf", // @"C:\Users\guido\Desktop\CerverceriaSabai\generadasfacturas\totales_temporal.pdf"); System.Console.ReadKey(); //** Activar para probar el proceso en memoria y envío por correo //MemoryStream ms = GenerarRIDE.CreatePDF1Stream(); //ms.Position = 0; //GenerarRIDE.SendEmail(ms); }