Esempio n. 1
0
        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);
     }
 }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        public async Task <IActionResult> Create(DetalleComprobante detalleComprobante)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            await _detalleComprobanteServicio.Create(detalleComprobante);

            return(Ok(detalleComprobante));
        }
Esempio n. 6
0
        /// <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);
            }
        }
Esempio n. 8
0
        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);
        }
Esempio n. 9
0
        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());
                    }
                }
            }
        }
Esempio n. 10
0
 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);
         }
     }
 }
Esempio n. 11
0
        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;
            }
        }
Esempio n. 13
0
        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;
            }
        }
Esempio n. 16
0
        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()));
            }
        }
Esempio n. 17
0
        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);
        }
Esempio n. 18
0
        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()));
            }
        }
Esempio n. 19
0
        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); }
        }
Esempio n. 20
0
        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);
        }