private void DatosFactura() { var dtsEmisor = new Contribuyente() { NroDocumento = "20525411401", TipoDocumento = "6", Direccion = "MZA. 228 LOTE. 06 ZONA INDUSTRIAL PIURA - PIURA - PIURA", Departamento = "PIURA", Provincia = "PIURA", Distrito = "PIURA", NombreLegal = "PIURAMAQ S.R.L.", NombreComercial = "", Ubigeo = "200101", CodDomicilioFiscal = "0000" //Código de cuatro dígitos asignado por SUNAT }; var dtsReceptor = new Contribuyente() { NroDocumento = "10472308616", TipoDocumento = "6", NombreLegal = "MEJIA MOSCOL JUAN JOSE", NombreComercial = "", Direccion = "JR. TUMBES NRO. 100 CENTRO PIURA (A 1 CUADRA DE AV. LIBERTAD CON BOLOGNESI)" }; for (var i = 1; i < 2; i++) { var dtsItems = new DetalleDocumento { Id = i, Cantidad = 2000, UnidadMedida = "NIU", CodigoItem = "COD001", //ItemClassificationCode = "82141601",// Este código será obligatorio para el 1-1-2019 - catálogo N° 15 del Anexo N° 8 Descripcion = "PRODUCTO PRUEBA", PrecioUnitario = 21.92m, PrecioReferencial = 25.86m, TipoPrecio = "01", TipoImpuesto = "10", OtroImpuesto = 0, Descuento = 0, Suma = 2000 * 21.92m, //_detalle.PrecioUnitario * _detalle.Cantidad Impuesto = (2000 * 21.92m) * _documento.CalculoIgv, //_detalle.Suma * _documento.CalculoIgv ImpuestoSelectivo = 0, //_detalle.Suma * _documento.CalculoIsc; TotalVenta = (2000 * 21.92m) - 0 //_detalle.Suma - _detalle.Descuento }; //Agregamos Detalle _documento.Items.Add(dtsItems); } _documento.IdDocumento = "F001-00000001"; _documento.TipoDocumento = "01"; _documento.Emisor = dtsEmisor; _documento.Receptor = dtsReceptor; _documento.FechaEmision = DateTime.Today.ToShortDateString(); _documento.Moneda = "PEN"; _documento.TipoOperacion = "0101"; //Venta interna CalcularTotales(); }
protected void AgregarProd_Click(object sender, EventArgs e) { LinkButton button = (LinkButton)sender; string codigo = (string)button.Attributes["data-codigo"]; Producto producto = productoBLL.GetProductos(codigo)[0]; foreach (GridViewRow row in GridView1.Rows) { TextBox c = (TextBox)row.FindControl("txt_Cantidad"); if (c is TextBox) { TextBox tb = (TextBox)c; if (codigo.Equals((string)c.Attributes["data-codigo"])) { int IdProd = productoBLL.getId(codigo); int IdDoc = documentoBLL.getId(folio); DetalleDocumento detalleDocumento = new DetalleDocumento(int.Parse(tb.Text), producto.Precio, 0, IdDoc, IdProd, 0); detalleDoc.Add(detalleDocumento); } } } int neto = 0; foreach (DetalleDocumento doc in detalleDoc) { neto += doc.PrecioProducto; } txtNeto.Text = neto.ToString(); txtIva.Text = (neto * 0.19).ToString(); txtTotal.Text = (neto + (neto * 0.19)).ToString(); }
public List <DetalleDocumento> Read_DocumentoDetalle() { List <DetalleDocumento> detalleDocumentos = new List <DetalleDocumento>(); DataTable dataTableDocumentoDetalle = readGeneralData.GetDataTable("[dbo].[Read_DocumentoDetalle]", "@IdCabeceraDocumento", IdCabeceraDocumento); DataRow row; DetalleDocumento detalleDocumento; for (int i = 0; i < dataTableDocumentoDetalle.Rows.Count; i++) { row = dataTableDocumentoDetalle.Rows[i]; detalleDocumento = new DetalleDocumento() { IdDocumentoDetalle = Convert.ToInt32(row["IdDocumentoDetalle"].ToString()), NumeroOrden = Convert.ToInt32(row["NumeroOrden"].ToString()), ValorVenta = Convert.ToDecimal(row["ValorVenta"].ToString()), Moneda = row["Moneda"].ToString(), Cantidad = Convert.ToDecimal(row["Cantidad"]), UnidadMedida = row["UnidadMedida"].ToString(), CodigoItem = row["CodigoItem"].ToString(), TipoPrecio = row["TipoPrecio"].ToString(), Descuento = Convert.ToDecimal(row["Descuento"].ToString()), TotalVenta = Convert.ToDecimal(row["TotalVenta"].ToString()), CodigoProductoSunat = row["CodigoProductoSunat"].ToString(), CodigoProducto = row["CodigoProducto"].ToString() }; detalleDocumentos.Add(detalleDocumento); } return(detalleDocumentos); }
public List <DetalleDocumento> LeerVentaDetalle(String Sigla, String Serie, String Numeracion) { DetalleDocumento ven = null; List <DetalleDocumento> Items = new List <DetalleDocumento>(); try { string consulta = @" SELECT F6_CITEM,F6_CCODIGO,F6_CDESCRI,F6_CUNIDAD,F6_NCANTID,F6_NPRECIO,F6_NIGV,F6_NIMPMN FROM INT_DOCELEDET WHERE F6_CTD=@Sigla AND F6_CNUMSER=@Serie AND F6_CNUMDOC=@Numeracion "; con.conectarBD(); cmd = new SqlCommand(consulta, con.conector); cmd.Parameters.AddWithValue("@Sigla", Sigla); cmd.Parameters.AddWithValue("@Serie", Serie); cmd.Parameters.AddWithValue("@Numeracion", Numeracion); cmd.CommandType = CommandType.Text; dr = cmd.ExecuteReader(); var totalRow = cmd.ExecuteScalar(); if (dr.HasRows) { Int32 i = 0; while (dr.Read()) { ven = new DetalleDocumento(); if (dr.GetString(1).Trim() != "TXT") { if (i > 0) { Items.Add(ven); } ven.Id = Convert.ToInt32(dr.GetString(0)); ven.CodigoItem = dr.GetString(1).Trim(); ven.Descripcion = dr.GetString(2).Trim(); //ven.UnidadMedida = dr.GetString(3).Trim(); ven.Cantidad = dr.GetDecimal(4); ven.PrecioUnitario = dr.GetDecimal(5); ven.Suma = Math.Round(ven.PrecioUnitario * ven.Cantidad, 2); ven.SubTotalVenta = Math.Round(ven.Suma / Convert.ToDecimal(1.18), 2); ven.Impuesto = Math.Round(ven.Suma - ven.SubTotalVenta, 2); ven.TotalVenta = Math.Round(ven.Suma, 2); ven.TipoPrecio = "01"; ven.TipoImpuesto = "10"; } else if (dr.GetString(1).Trim() == "TXT") { ven.Descripcion += dr.GetString(2).Trim(); } i++; //Items.Add(ven); } } return(Items); } catch (SqlException ex) { throw ex; } finally { con.conector.Dispose(); cmd.Dispose(); con.desconectarBD(); } }
private void DatosBoleta() { var dtsEmisor = new Contribuyente() { NroDocumento = "20556442259", TipoDocumento = "6", Direccion = "CAL.GERMAN SCHREIBER NRO. 276 LIMA - LIMA - SAN ISIDRO", Departamento = "PIURA", Provincia = "PIURA", Distrito = "PIURA", NombreLegal = "LUNA VERDE SOCIEDAD ANONIMA CERRADA", NombreComercial = "", Ubigeo = "150131", CodDomicilioFiscal = "0000" //Código de cuatro dígitos asignado por SUNAT }; var dtsReceptor = new Contribuyente() { NroDocumento = "47961796", TipoDocumento = "1", NombreLegal = "ERWIN STALIN TORRES LEON", NombreComercial = "", Direccion = "PIURA - PIURA" }; _documento.CalculoIgv = 0.18m; var dtsItems = new DetalleDocumento { Id = 1, Cantidad = 1, UnidadMedida = "NIU", CodigoItem = "COD001", Descripcion = "PRODUCTO PRUEBA", PrecioUnitario = 1.50m, PrecioReferencial = 20m, TipoPrecio = "01", TipoImpuesto = "10", OtroImpuesto = 0, Descuento = 0, Suma = 1.50m * 1m, //_detalle.PrecioUnitario * _detalle.Cantidad Impuesto = (1.50m * 1m) * _documento.CalculoIgv, //_detalle.Suma * _documento.CalculoIgv ImpuestoSelectivo = 0, //_detalle.Suma * _documento.CalculoIsc; TotalVenta = (1.5m * 1m) - 0 //_detalle.Suma - _detalle.Descuento }; _documento.IdDocumento = "B005-00000006"; _documento.TipoDocumento = "03"; _documento.Emisor = dtsEmisor; _documento.Receptor = dtsReceptor; _documento.FechaEmision = DateTime.Today.ToShortDateString(); _documento.IssueTime = String.Format("{0:HH:mm:ss}", DateTime.Now); _documento.Moneda = "PEN"; _documento.TipoOperacion = "0101"; //Agregamos Detalle _documento.Items.Add(dtsItems); CalcularTotales(); }
private void DatosBoleta() { var dtsEmisor = new Contribuyente() { NroDocumento = "20525411401", TipoDocumento = "6", Direccion = "MZA. 228 LOTE. 06 ZONA INDUSTRIAL PIURA - PIURA - PIURA", Departamento = "PIURA", Provincia = "PIURA", Distrito = "PIURA", NombreLegal = "PIURAMAQ S.R.L.", NombreComercial = "", Ubigeo = "200101" }; var dtsReceptor = new Contribuyente() { NroDocumento = "47230861", TipoDocumento = "1", NombreLegal = "MEJIA MOSCOL JUAN JOSE", NombreComercial = "", Direccion = "JR. TUMBES NRO. 100 CENTRO PIURA (A 1 CUADRA DE AV. LIBERTAD CON BOLOGNESI)" }; var dtsItems = new DetalleDocumento { Id = 1, Cantidad = 2000, UnidadMedida = "NIU", CodigoItem = "COD001", Descripcion = "PRODUCTO PRUEBA", PrecioUnitario = 21.92m, PrecioReferencial = 25.86m, TipoPrecio = "01", TipoImpuesto = "10", OtroImpuesto = 0, Descuento = 0, Suma = 2000 * 21.92m, //_detalle.PrecioUnitario * _detalle.Cantidad Impuesto = (2000 * 21.92m) * _documento.CalculoIgv, //_detalle.Suma * _documento.CalculoIgv ImpuestoSelectivo = 0, //_detalle.Suma * _documento.CalculoIsc; TotalVenta = (2000 * 21.92m) - 0 //_detalle.Suma - _detalle.Descuento }; _documento.IdDocumento = "B001-00000001"; _documento.TipoDocumento = "03"; _documento.Emisor = dtsEmisor; _documento.Receptor = dtsReceptor; _documento.FechaEmision = DateTime.Today.ToShortDateString(); _documento.Moneda = "PEN"; _documento.TipoOperacion = "0101"; //Agregamos Detalle _documento.Items.Add(dtsItems); CalcularTotales(); }
public bool insertdetalle(int idrepo, DetalleDocumento Detalle) { bool id = false; try { con.conectarBD(); tra = con.conector.BeginTransaction(); cmd = new MySqlCommand("registro_detcomprobante", con.conector); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add(new MySqlParameter("@_idrepositorio", MySqlDbType.Int32)); cmd.Parameters.Add(new MySqlParameter("@_nombreproducto", MySqlDbType.VarChar)); cmd.Parameters.Add(new MySqlParameter("@_cantidad", MySqlDbType.Decimal)); cmd.Parameters.Add(new MySqlParameter("@_unidadmedida", MySqlDbType.VarChar)); cmd.Parameters.Add(new MySqlParameter("@_subtotal", MySqlDbType.Decimal)); cmd.Parameters.Add(new MySqlParameter("@_igv", MySqlDbType.Decimal)); cmd.Parameters.Add(new MySqlParameter("@_total", MySqlDbType.Decimal)); cmd.Parameters.Add(new MySqlParameter("@_precio", MySqlDbType.Decimal)); cmd.Parameters[0].Value = idrepo; cmd.Parameters[1].Value = Detalle.Descripcion; cmd.Parameters[2].Value = Detalle.Cantidad; cmd.Parameters[3].Value = Detalle.UnidadMedida; cmd.Parameters[4].Value = Detalle.SubTotalVenta; cmd.Parameters[5].Value = Detalle.Impuesto; cmd.Parameters[6].Value = Detalle.TotalVenta; cmd.Parameters[7].Value = Detalle.PrecioUnitario; dr = cmd.ExecuteReader(); if (dr.HasRows) { while (dr.Read()) { id = true; } dr.Close(); } tra.Commit(); return(id); } catch (MySqlException ex) { tra.Rollback(); return(id); throw ex; } finally { con.conector.Dispose(); cmd.Dispose(); con.desconectarBD(); } }
public ActionResult GuardarCambios(int idDetalle, int IdDocumento, string fecha, string emisor, string numero, string valor, string comentarios) { DetalleDocumento obj = db.DetalleDocumentos.Find(idDetalle); obj.DocumentoId = IdDocumento; obj.Fecha = DateTime.Parse(fecha); obj.Emisor = emisor; obj.Numero = int.Parse(numero); obj.Valor = double.Parse(valor); obj.Comentarios = comentarios; db.Entry(obj).State = EntityState.Modified; int a = db.SaveChanges(); return(Json(new { a }, JsonRequestBehavior.AllowGet)); }
public ActionResult AddNuevo(int IdReclamo, int IdDocumento, string fecha, string emisor, string numero, string valor, string comentarios) { DetalleDocumento nuevo = new DetalleDocumento(); nuevo.ReclamoId = IdReclamo; nuevo.DocumentoId = IdDocumento; nuevo.Fecha = DateTime.Parse(fecha); nuevo.Emisor = emisor; nuevo.Numero = int.Parse(numero); nuevo.Valor = double.Parse(valor); nuevo.Comentarios = comentarios; db.DetalleDocumentos.Add(nuevo); int x = db.SaveChanges(); return(Json(new { x }, JsonRequestBehavior.AllowGet)); }
private void btnDuplicar_Click(object sender, EventArgs e) { try { Cursor.Current = Cursors.WaitCursor; var registro = detallesBindingSource.Current as DetalleDocumento; if (registro == null) { throw new ArgumentNullException(nameof(registro)); } var copia = new DetalleDocumento { Id = registro.Id, Cantidad = registro.Cantidad, CodigoItem = registro.CodigoItem, Descripcion = registro.Descripcion, PrecioUnitario = registro.PrecioUnitario, PrecioReferencial = registro.PrecioReferencial, UnidadMedida = registro.UnidadMedida, Impuesto = registro.Impuesto, ImpuestoSelectivo = registro.ImpuestoSelectivo, TipoImpuesto = registro.TipoImpuesto, TipoPrecio = registro.TipoPrecio, TotalVenta = registro.TotalVenta, Suma = registro.Suma, OtroImpuesto = registro.OtroImpuesto }; copia.Id = copia.Id + 1; _documento.Items.Add(copia); CalcularTotales(); } catch (Exception ex) { MessageBox.Show(ex.Message, Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } finally { Cursor.Current = Cursors.Default; } }
public FrmDetalleDocumento(DetalleDocumento detalle, DocumentoElectronico documento) { InitializeComponent(); _detalle = detalle; _documento = documento; detalleDocumentoBindingSource.DataSource = detalle; detalleDocumentoBindingSource.ResetBindings(false); Load += (s, e) => { using (var ctx = new OpenInvoicePeruDb()) { tipoImpuestoBindingSource.DataSource = ctx.TipoImpuestos.ToList(); tipoImpuestoBindingSource.ResetBindings(false); tipoPrecioBindingSource.DataSource = ctx.TipoPrecios.ToList(); tipoPrecioBindingSource.ResetBindings(false); } }; }
public static DetalleDocumento DetalleItem(DataTable DtArticulos, int i) { decimal vPrecioUnitario = 0; try { if (Convert.ToDecimal(DtArticulos.Rows[i]["Productocantidad"]) == 0) { vPrecioUnitario = Convert.ToDecimal(DtArticulos.Rows[i]["Preciovta"]); } else { vPrecioUnitario = Convert.ToDecimal(DtArticulos.Rows[i]["Preciovta"]); } DetalleDocumento detalle = new DetalleDocumento(); detalle.Id = Convert.ToInt32(i + 1); detalle.Cantidad = Convert.ToDecimal(DtArticulos.Rows[i]["Productocantidad"]); detalle.PrecioReferencial = vPrecioUnitario; detalle.PrecioUnitario = vPrecioUnitario; detalle.TipoPrecio = Convert.ToString(DtArticulos.Rows[i]["TipodePrecio"]); detalle.CodigoItem = Convert.ToString(DtArticulos.Rows[i]["ProductoCodigo"]); detalle.Descripcion = Convert.ToString(DtArticulos.Rows[i]["Productodescripcion"]); detalle.UnidadMedida = "NIU"; detalle.Impuesto = Convert.ToDecimal(DtArticulos.Rows[i]["ItemIgv"]); detalle.TipoImpuesto = Convert.ToString(DtArticulos.Rows[i]["TipodeImpuesto"]); detalle.ImpuestoSelectivo = Convert.ToDecimal(DtArticulos.Rows[i]["itemIsc"]); detalle.OtroImpuesto = 0; detalle.TotalVenta = Convert.ToDecimal(DtArticulos.Rows[i]["ItemVenta"]); detalle.Suma = Convert.ToDecimal(DtArticulos.Rows[i]["ItemVenta"]); return(detalle); } catch (Exception ex) { MessageBox.Show(ex.Message); return(null); } }
public List <DetalleDocumento> consultaDDocumento(int idDocumento) { try { ConexionBD conexion = new ConexionBD(); conexion.abrirConexion(); string sql = "SELECT * FROM detalleDocumento where documento_id=@documento_id"; SqlDataAdapter sqlData = new SqlDataAdapter(sql, conexion.Conexion); sqlData.SelectCommand.Parameters.AddWithValue("@documento_id", SqlDbType.Int); sqlData.SelectCommand.Parameters["@documento_id"].Value = idDocumento; DataTable dataTable = new DataTable(); sqlData.Fill(dataTable); conexion.cerrarConexion(); List <DetalleDocumento> detalleD = new List <DetalleDocumento>(); if (dataTable.Rows.Count > 0) { for (int i = 0; i < dataTable.Rows.Count; i++) { DetalleDocumento detalleAux = new DetalleDocumento(); detalleAux.CantidadProducto = int.Parse(dataTable.Rows[i]["cantidadProducto"].ToString()); detalleAux.PrecioProducto = int.Parse(dataTable.Rows[i]["precioProducto"].ToString()); detalleAux.IdProducto = int.Parse(dataTable.Rows[i]["producto_id"].ToString()); detalleAux.IdDocumento = int.Parse(dataTable.Rows[i]["documento_id"].ToString()); detalleAux.Estado = int.Parse(dataTable.Rows[i]["estado"].ToString()); detalleD.Add(detalleAux); } } return(detalleD); } catch (Exception) { throw; } }
public static DetalleDocumento DetalleItem(DataTable DtArticulos, int i) { decimal vPrecioUnitario = 0; try { if ((double)Convert.ToDecimal(DtArticulos.Rows[i]["Productocantidad"]) == 0) { vPrecioUnitario = Convert.ToDecimal(DtArticulos.Rows[i]["Preciovta"]); } else { vPrecioUnitario = Convert.ToDecimal(DtArticulos.Rows[i]["Preciovta"]) / Convert.ToDecimal(DtArticulos.Rows[i]["Productocantidad"]); } DetalleDocumento detalle = new DetalleDocumento { Id = i + 1, Cantidad = Convert.ToDecimal(DtArticulos.Rows[i]["Productocantidad"]), PrecioReferencial = vPrecioUnitario, PrecioUnitario = vPrecioUnitario, TipoPrecio = "01", CodigoItem = Convert.ToString(DtArticulos.Rows[i]["ProductoCodigo"]), Descripcion = Convert.ToString(DtArticulos.Rows[i]["Productodescripcion"]), UnidadMedida = "KG", Impuesto = Convert.ToDecimal(DtArticulos.Rows[i]["ItemIgv"]), TipoImpuesto = "10", TotalVenta = Convert.ToDecimal(DtArticulos.Rows[i]["ItemVenta"]), Suma = Convert.ToDecimal(DtArticulos.Rows[i]["ItemVenta"]), }; return(detalle); } catch (Exception ex) { return(null); } }
public bool updatedetalle(DetalleDocumento Detalle) { return(detallecomp.updatedetalle(Detalle)); }
public bool insertdetalle(int repo, DetalleDocumento Detalle) { return(detallecomp.insertdetalle(repo, Detalle)); }
public List <DetalleDocumento> ConsultarDetalleDocumento(ConsultaDetalleDocumento request) { // lstDocumentoDetalleFlete List <DetalleDocumento> lsDetalleDocumento = new List <DetalleDocumento>(); List <DocumentoDetalleCargaConsulta> lstDocumentoDetalleCarga = new List <DocumentoDetalleCargaConsulta>(); List <DocumentoDetalleClienteConsulta> lstDocumentoDetalleCliente = new List <DocumentoDetalleClienteConsulta>(); List <DocumentoDetalleFleteConsulta> lstDocumentoDetalleFlete = new List <DocumentoDetalleFleteConsulta>(); using (SqlConnection conexion = new SqlConnection(ContextoParaBaseDatos.DecryptedConnectionString("TransmisionesDB"))) { Dictionary <string, object> parametrosIn = new Dictionary <string, object>(); parametrosIn.Add("@CodigoDocumento", request.CodigoDocumento); using (SqlCommand cmd = SqlHelper.CreateCommandWithParameters("USP_CONSULTAR_DETALLE_DOCUMENTO", conexion, parametrosIn, true)) { using (IDataReader dr = cmd.ExecuteReader()) { while (dr.Read()) { DetalleDocumento Documento = new DetalleDocumento(); Documento.CodigoDocumento = dr.IsDBNull(dr.GetOrdinal("CodigoDocumento")) ? 0 : dr.GetInt64(dr.GetOrdinal("CodigoDocumento")); Documento.CodigoItinerario = dr.IsDBNull(dr.GetOrdinal("CodigoItinerario")) ? 0 : dr.GetInt64(dr.GetOrdinal("CodigoItinerario")); Documento.NombreNave = dr.IsDBNull(dr.GetOrdinal("NombreNave")) ? "" : dr.GetString(dr.GetOrdinal("NombreNave")).Trim(); Documento.NumeroViajeItinerario = dr.IsDBNull(dr.GetOrdinal("NumeroViajeItinerario")) ? "" : dr.GetString(dr.GetOrdinal("NumeroViajeItinerario")).Trim(); Documento.NombreAduanaNave = dr.IsDBNull(dr.GetOrdinal("NombreAduanaNave")) ? "" : dr.GetString(dr.GetOrdinal("NombreAduanaNave")).Trim(); Documento.NombreTipoOperacion = dr.IsDBNull(dr.GetOrdinal("NombreTipoOperacion")) ? "" : dr.GetString(dr.GetOrdinal("NombreTipoOperacion")).Trim(); Documento.CodigoPuertoOrigenDocumento = dr.IsDBNull(dr.GetOrdinal("CodigoPuertoOrigenDocumento")) ? 0 : dr.GetInt64(dr.GetOrdinal("CodigoPuertoOrigenDocumento")); Documento.NombrePuertoOrigen = dr.IsDBNull(dr.GetOrdinal("NombrePuertoOrigen")) ? "" : dr.GetString(dr.GetOrdinal("NombrePuertoOrigen")).Trim(); Documento.CodigoPuertoEmbarqueDocumento = dr.IsDBNull(dr.GetOrdinal("CodigoPuertoEmbarqueDocumento")) ? 0 : dr.GetInt64(dr.GetOrdinal("CodigoPuertoEmbarqueDocumento")); Documento.NombrePuertoEmbarque = dr.IsDBNull(dr.GetOrdinal("NombrePuertoEmbarque")) ? "" : dr.GetString(dr.GetOrdinal("NombrePuertoEmbarque")).Trim(); Documento.CodigoPuertoDescargaDocumento = dr.IsDBNull(dr.GetOrdinal("CodigoPuertoDescargaDocumento")) ? 0 : dr.GetInt64(dr.GetOrdinal("CodigoPuertoDescargaDocumento")); Documento.NombrePuertoDescarga = dr.IsDBNull(dr.GetOrdinal("NombrePuertoDescarga")) ? "" : dr.GetString(dr.GetOrdinal("NombrePuertoDescarga")).Trim(); Documento.CodigoPuertoFinalDocumento = dr.IsDBNull(dr.GetOrdinal("CodigoPuertoFinalDocumento")) ? 0 : dr.GetInt64(dr.GetOrdinal("CodigoPuertoFinalDocumento")); Documento.NombrePuertoFinal = dr.IsDBNull(dr.GetOrdinal("NombrePuertoFinal")) ? "" : dr.GetString(dr.GetOrdinal("NombrePuertoFinal")).Trim(); Documento.CodigoLineaNaviera = dr.IsDBNull(dr.GetOrdinal("CodigoLineaNaviera")) ? 0 : dr.GetInt64(dr.GetOrdinal("CodigoLineaNaviera")); Documento.NombreLineaNaviera = dr.IsDBNull(dr.GetOrdinal("NombreLineaNaviera")) ? "" : dr.GetString(dr.GetOrdinal("NombreLineaNaviera")).Trim(); Documento.CodigoAduana = dr.IsDBNull(dr.GetOrdinal("CodigoAduana")) ? 0 : dr.GetInt64(dr.GetOrdinal("CodigoAduana")); Documento.NombreAduana = dr.IsDBNull(dr.GetOrdinal("NombreAduana")) ? "" : dr.GetString(dr.GetOrdinal("NombreAduana")).Trim(); Documento.CodigoTipoBL = dr.IsDBNull(dr.GetOrdinal("CodigoTipoBL")) ? 0 : dr.GetInt64(dr.GetOrdinal("CodigoTipoBL")); Documento.NombreTipoBL = dr.IsDBNull(dr.GetOrdinal("NombreTipoBL")) ? "" : dr.GetString(dr.GetOrdinal("NombreTipoBL")).Trim(); Documento.CodigoTipoEnvio = dr.IsDBNull(dr.GetOrdinal("CodigoTipoEnvio")) ? 0 : dr.GetInt64(dr.GetOrdinal("CodigoTipoEnvio")); Documento.NombreTipoEnvio = dr.IsDBNull(dr.GetOrdinal("NombreTipoEnvio")) ? "" : dr.GetString(dr.GetOrdinal("NombreTipoEnvio")).Trim(); Documento.CodigoCondicionContrato = dr.IsDBNull(dr.GetOrdinal("CodigoCondicionContrato")) ? 0 : dr.GetInt64(dr.GetOrdinal("CodigoCondicionContrato")); Documento.NombreCondicionContrato = dr.IsDBNull(dr.GetOrdinal("NombreCondicionContrato")) ? "" : dr.GetString(dr.GetOrdinal("NombreCondicionContrato")).Trim(); Documento.CodigoRequerimientoServicio = dr.IsDBNull(dr.GetOrdinal("CodigoRequerimientoServicio")) ? 0 : dr.GetInt64(dr.GetOrdinal("CodigoRequerimientoServicio")); Documento.NombreRequerimientoServicio = dr.IsDBNull(dr.GetOrdinal("NombreRequerimientoServicio")) ? "" : dr.GetString(dr.GetOrdinal("NombreRequerimientoServicio")).Trim(); Documento.NumeroDocumento = dr.IsDBNull(dr.GetOrdinal("NumeroDocumento")) ? "" : dr.GetString(dr.GetOrdinal("NumeroDocumento")).Trim(); Documento.FechaEmisionDocumento = dr.IsDBNull(dr.GetOrdinal("FechaEmisionDocumento")) ? new Nullable <DateTime>() : dr.GetDateTime(dr.GetOrdinal("FechaEmisionDocumento")); Documento.FechaEmbarqueDocumento = dr.IsDBNull(dr.GetOrdinal("FechaEmbarqueDocumento")) ? new Nullable <DateTime>() : dr.GetDateTime(dr.GetOrdinal("FechaEmbarqueDocumento")); Documento.EstadoRegistro = dr.GetBoolean(dr.GetOrdinal("EstadoRegistro")); Documento.UsuarioCreacion = dr.IsDBNull(dr.GetOrdinal("UsuarioCreacion")) ? "" : dr.GetString(dr.GetOrdinal("UsuarioCreacion")).Trim(); Documento.FechaHoraCreacion = dr.IsDBNull(dr.GetOrdinal("FechaHoraCreacion")) ? new Nullable <DateTime>() : dr.GetDateTime(dr.GetOrdinal("FechaHoraCreacion")); Documento.UsuarioActualizacion = dr.IsDBNull(dr.GetOrdinal("UsuarioActualizacion")) ? "" : dr.GetString(dr.GetOrdinal("UsuarioActualizacion")).Trim(); Documento.FechaHoraActualizacion = dr.IsDBNull(dr.GetOrdinal("FechaHoraActualizacion")) ? new Nullable <DateTime>() : dr.GetDateTime(dr.GetOrdinal("FechaHoraActualizacion")); lsDetalleDocumento.Add(Documento); } dr.NextResult(); while (dr.Read()) { DocumentoDetalleCargaConsulta DetalleCargaConsulta = new DocumentoDetalleCargaConsulta(); { DetalleCargaConsulta.CodigoDocumentoDetalleCarga = dr.IsDBNull(dr.GetOrdinal("CodigoDocumentoDetalleCarga")) ? 0 : dr.GetInt64(dr.GetOrdinal("CodigoDocumentoDetalleCarga")); DetalleCargaConsulta.CodigoDocumento = dr.IsDBNull(dr.GetOrdinal("CodigoDocumento")) ? 0 : dr.GetInt64(dr.GetOrdinal("CodigoDocumento")); DetalleCargaConsulta.CodigoContenedor = dr.IsDBNull(dr.GetOrdinal("CodigoContenedor")) ? 0 : dr.GetInt64(dr.GetOrdinal("CodigoContenedor")); DetalleCargaConsulta.NumeroContenedor = dr.IsDBNull(dr.GetOrdinal("NumeroContenedor")) ? "" : dr.GetString(dr.GetOrdinal("NumeroContenedor")).Trim(); DetalleCargaConsulta.NombreTipoContenedor = dr.IsDBNull(dr.GetOrdinal("NombreTipoContenedor")) ? "" : dr.GetString(dr.GetOrdinal("NombreTipoContenedor")).Trim(); DetalleCargaConsulta.TamanioTipoContenedor = dr.IsDBNull(dr.GetOrdinal("TamanioTipoContenedor")) ? "" : dr.GetString(dr.GetOrdinal("TamanioTipoContenedor")).Trim(); DetalleCargaConsulta.CodigoCondicionTransporte = dr.IsDBNull(dr.GetOrdinal("CodigoCondicionTransporte")) ? 0 : dr.GetInt64(dr.GetOrdinal("CodigoCondicionTransporte")); DetalleCargaConsulta.NombreCondicionTransporte = dr.IsDBNull(dr.GetOrdinal("NombreCondicionTransporte")) ? "" : dr.GetString(dr.GetOrdinal("NombreCondicionTransporte")).Trim(); DetalleCargaConsulta.CodigoTipoMovimiento = dr.IsDBNull(dr.GetOrdinal("CodigoTipoMovimiento")) ? 0 : dr.GetInt64(dr.GetOrdinal("CodigoTipoMovimiento")); DetalleCargaConsulta.NombreTipoMovimiento = dr.IsDBNull(dr.GetOrdinal("NombreTipoMovimiento")) ? "" : dr.GetString(dr.GetOrdinal("NombreTipoMovimiento")).Trim(); DetalleCargaConsulta.CodigoUnidadMercancia = dr.IsDBNull(dr.GetOrdinal("CodigoUnidadMercancia")) ? 0 : dr.GetInt64(dr.GetOrdinal("CodigoUnidadMercancia")); DetalleCargaConsulta.NombreUnidadMercancia = dr.IsDBNull(dr.GetOrdinal("NombreUnidadMercancia")) ? "" : dr.GetString(dr.GetOrdinal("NombreUnidadMercancia")).Trim(); DetalleCargaConsulta.CodigoNaturalezaCarga = dr.IsDBNull(dr.GetOrdinal("CodigoNaturalezaCarga")) ? 0 : dr.GetInt64(dr.GetOrdinal("CodigoNaturalezaCarga")); DetalleCargaConsulta.NombreNaturalezaCarga = dr.IsDBNull(dr.GetOrdinal("NombreNaturalezaCarga")) ? "" : dr.GetString(dr.GetOrdinal("NombreNaturalezaCarga")).Trim(); DetalleCargaConsulta.CodigoCondicionCarga = dr.IsDBNull(dr.GetOrdinal("CodigoCondicionCarga")) ? 0 : dr.GetInt64(dr.GetOrdinal("CodigoCondicionCarga")); DetalleCargaConsulta.NombreCondicionCarga = dr.IsDBNull(dr.GetOrdinal("NombreCondicionCarga")) ? "" : dr.GetString(dr.GetOrdinal("NombreCondicionCarga")).Trim(); DetalleCargaConsulta.CodigoTemperatura = dr.IsDBNull(dr.GetOrdinal("CodigoTemperatura")) ? 0 : dr.GetInt64(dr.GetOrdinal("CodigoTemperatura")); DetalleCargaConsulta.NombreTemperatura = dr.IsDBNull(dr.GetOrdinal("NombreTemperatura")) ? "" : dr.GetString(dr.GetOrdinal("NombreTemperatura")).Trim(); DetalleCargaConsulta.CodigoClaseIMO = dr.IsDBNull(dr.GetOrdinal("CodigoClaseIMO")) ? 0 : dr.GetInt64(dr.GetOrdinal("CodigoClaseIMO")); DetalleCargaConsulta.NombreClaseIMO = dr.IsDBNull(dr.GetOrdinal("NombreClaseIMO")) ? "" : dr.GetString(dr.GetOrdinal("NombreClaseIMO")).Trim(); DetalleCargaConsulta.CodigoNumeroIMO = dr.IsDBNull(dr.GetOrdinal("CodigoNumeroIMO")) ? 0 : dr.GetInt64(dr.GetOrdinal("CodigoNumeroIMO")); DetalleCargaConsulta.NombreNumeroIMO = dr.IsDBNull(dr.GetOrdinal("NombreNumeroIMO")) ? "" : dr.GetString(dr.GetOrdinal("NombreNumeroIMO")).Trim(); DetalleCargaConsulta.CodigoAlmacenDocumentoDetalleCarga = dr.IsDBNull(dr.GetOrdinal("CodigoAlmacenDocumentoDetalleCarga")) ? 0 : dr.GetInt64(dr.GetOrdinal("CodigoAlmacenDocumentoDetalleCarga")); DetalleCargaConsulta.NombreAlmacen = dr.IsDBNull(dr.GetOrdinal("NombreAlmacen")) ? "" : dr.GetString(dr.GetOrdinal("NombreAlmacen")).Trim(); DetalleCargaConsulta.CodigoDepositoDocumentoDetalleCarga = dr.IsDBNull(dr.GetOrdinal("CodigoDepositoDocumentoDetalleCarga")) ? 0 : dr.GetInt64(dr.GetOrdinal("CodigoDepositoDocumentoDetalleCarga")); DetalleCargaConsulta.NombreDeposito = dr.IsDBNull(dr.GetOrdinal("NombreDeposito")) ? "" : dr.GetString(dr.GetOrdinal("NombreDeposito")).Trim(); DetalleCargaConsulta.CodigoPrecinto = dr.IsDBNull(dr.GetOrdinal("CodigoPrecinto")) ? 0 : dr.GetInt64(dr.GetOrdinal("CodigoPrecinto")); DetalleCargaConsulta.NumeroPrecinto = dr.IsDBNull(dr.GetOrdinal("NumeroPrecinto")) ? "" : dr.GetString(dr.GetOrdinal("NumeroPrecinto")).Trim(); DetalleCargaConsulta.ItemDocumentoDetalleCarga = dr.IsDBNull(dr.GetOrdinal("ItemDocumentoDetalleCarga")) ? 0 : dr.GetInt32(dr.GetOrdinal("ItemDocumentoDetalleCarga")); DetalleCargaConsulta.CantidadBultoDocumentoDetalleCarga = dr.IsDBNull(dr.GetOrdinal("CantidadBultoDocumentoDetalleCarga")) ? 0 : dr.GetInt32(dr.GetOrdinal("CantidadBultoDocumentoDetalleCarga")); DetalleCargaConsulta.PesoBrutoDocumentoDetalleCarga = dr.IsDBNull(dr.GetOrdinal("PesoBrutoDocumentoDetalleCarga")) ? new Nullable <Decimal>() : dr.GetDecimal(dr.GetOrdinal("PesoBrutoDocumentoDetalleCarga")); DetalleCargaConsulta.VolumenBrutoDocumentoDetalleCarga = dr.IsDBNull(dr.GetOrdinal("VolumenBrutoDocumentoDetalleCarga")) ? new Nullable <Decimal>() : dr.GetDecimal(dr.GetOrdinal("VolumenBrutoDocumentoDetalleCarga")); DetalleCargaConsulta.TemperaturaMinimaDocumentoDetalleCarga = dr.IsDBNull(dr.GetOrdinal("TemperaturaMinimaDocumentoDetalleCarga")) ? new Nullable <Decimal>() : dr.GetDecimal(dr.GetOrdinal("TemperaturaMinimaDocumentoDetalleCarga")); DetalleCargaConsulta.TemperaturaMaximaDocumentoDetalleCarga = dr.IsDBNull(dr.GetOrdinal("TemperaturaMaximaDocumentoDetalleCarga")) ? new Nullable <Decimal>() : dr.GetDecimal(dr.GetOrdinal("TemperaturaMaximaDocumentoDetalleCarga")); DetalleCargaConsulta.PropietarioDocumentoDetalleCarga = dr.IsDBNull(dr.GetOrdinal("PropietarioDocumentoDetalleCarga")) ? false : dr.GetBoolean(dr.GetOrdinal("PropietarioDocumentoDetalleCarga")); DetalleCargaConsulta.ObservacionDocumentoDetalleCarga = dr.IsDBNull(dr.GetOrdinal("ObservacionDocumentoDetalleCarga")) ? "" : dr.GetString(dr.GetOrdinal("ObservacionDocumentoDetalleCarga")).Trim(); DetalleCargaConsulta.DescripcionDocumentoDetalleCarga = dr.IsDBNull(dr.GetOrdinal("DescripcionDocumentoDetalleCarga")) ? "" : dr.GetString(dr.GetOrdinal("DescripcionDocumentoDetalleCarga")).Trim(); DetalleCargaConsulta.MarcasNumerosDocumentoDetalleCarga = dr.IsDBNull(dr.GetOrdinal("MarcasNumerosDocumentoDetalleCarga")) ? "" : dr.GetString(dr.GetOrdinal("MarcasNumerosDocumentoDetalleCarga")).Trim(); DetalleCargaConsulta.FaltoDocumentoDetalleCarga = dr.IsDBNull(dr.GetOrdinal("FaltoDocumentoDetalleCarga")) ? false : dr.GetBoolean(dr.GetOrdinal("FaltoDocumentoDetalleCarga")); }; lstDocumentoDetalleCarga.Add(DetalleCargaConsulta); } dr.NextResult(); while (dr.Read()) { DocumentoDetalleClienteConsulta DetalleClienteConsulta = new DocumentoDetalleClienteConsulta(); { DetalleClienteConsulta.CodigoDocumentoDetalleCliente = dr.IsDBNull(dr.GetOrdinal("CodigoDocumentoDetalleCliente")) ? 0 : dr.GetInt64(dr.GetOrdinal("CodigoDocumentoDetalleCliente")); DetalleClienteConsulta.CodigoDocumento = dr.IsDBNull(dr.GetOrdinal("CodigoDocumento")) ? 0 : dr.GetInt64(dr.GetOrdinal("CodigoDocumento")); DetalleClienteConsulta.CodigoRol = dr.IsDBNull(dr.GetOrdinal("CodigoRol")) ? 0 : dr.GetInt64(dr.GetOrdinal("CodigoRol")); DetalleClienteConsulta.NombreRol = dr.IsDBNull(dr.GetOrdinal("NombreRol")) ? "" : dr.GetString(dr.GetOrdinal("NombreRol")).Trim(); DetalleClienteConsulta.CodigoPersona = dr.IsDBNull(dr.GetOrdinal("CodigoPersona")) ? 0 : dr.GetInt64(dr.GetOrdinal("CodigoPersona")); DetalleClienteConsulta.RazonSocialPersona = dr.IsDBNull(dr.GetOrdinal("RazonSocialPersona")) ? "" : dr.GetString(dr.GetOrdinal("RazonSocialPersona")).Trim(); }; lstDocumentoDetalleCliente.Add(DetalleClienteConsulta); } dr.NextResult(); while (dr.Read()) { DocumentoDetalleFleteConsulta DetalleFleteConsulta = new DocumentoDetalleFleteConsulta(); { DetalleFleteConsulta.CodigoDocumentoDetalleFlete = dr.IsDBNull(dr.GetOrdinal("CodigoDocumentoDetalleFlete")) ? 0 : dr.GetInt64(dr.GetOrdinal("CodigoDocumentoDetalleFlete")); DetalleFleteConsulta.CodigoDocumento = dr.IsDBNull(dr.GetOrdinal("CodigoDocumento")) ? 0 : dr.GetInt64(dr.GetOrdinal("CodigoDocumento")); DetalleFleteConsulta.CodigoTipoFlete = dr.IsDBNull(dr.GetOrdinal("CodigoTipoFlete")) ? 0 : dr.GetInt64(dr.GetOrdinal("CodigoTipoFlete")); DetalleFleteConsulta.NombreTipoFlete = dr.IsDBNull(dr.GetOrdinal("NombreTipoFlete")) ? "" : dr.GetString(dr.GetOrdinal("NombreTipoFlete")).Trim(); DetalleFleteConsulta.CodigoMoneda = dr.IsDBNull(dr.GetOrdinal("CodigoMoneda")) ? 0 : dr.GetInt64(dr.GetOrdinal("CodigoMoneda")); DetalleFleteConsulta.NombreMoneda = dr.IsDBNull(dr.GetOrdinal("NombreMoneda")) ? "" : dr.GetString(dr.GetOrdinal("NombreMoneda")).Trim(); DetalleFleteConsulta.CodigoModoPago = dr.IsDBNull(dr.GetOrdinal("CodigoModoPago")) ? 0 : dr.GetInt64(dr.GetOrdinal("CodigoModoPago")); DetalleFleteConsulta.NombreModoPago = dr.IsDBNull(dr.GetOrdinal("NombreModoPago")) ? "" : dr.GetString(dr.GetOrdinal("NombreModoPago")).Trim(); DetalleFleteConsulta.MontoDocumentoDetalleFlete = dr.IsDBNull(dr.GetOrdinal("MontoDocumentoDetalleFlete")) ? new Nullable <Decimal>() : dr.GetDecimal(dr.GetOrdinal("MontoDocumentoDetalleFlete")); }; lstDocumentoDetalleFlete.Add(DetalleFleteConsulta); } SqlHelper.CloseConnection(conexion); } foreach (var objDocumento in lsDetalleDocumento) { objDocumento.ListaDocumentoDetalleCarga = lstDocumentoDetalleCarga.Where(x => x.CodigoDocumento == objDocumento.CodigoDocumento).ToList(); objDocumento.ListaDocumentoDetalleCliente = lstDocumentoDetalleCliente.Where(x => x.CodigoDocumento == objDocumento.CodigoDocumento).ToList(); objDocumento.ListaDocumentoDetalleFlete = lstDocumentoDetalleFlete.Where(x => x.CodigoDocumento == objDocumento.CodigoDocumento).ToList(); } } } return(lsDetalleDocumento); }
public bool updatedetalle(DetalleDocumento Detalle) { throw new NotImplementedException(); }
//public static string ImprimirComprobante(int ventaPetroamericaId, int ventaId) public static string ImprimirComprobante(string numeroDocumento, string tipoDocumentoId, string serie, string correlativo, string fechaEmision, decimal montoTotalComprobante) { var mensaje = String.Empty; try { var empresaInfo = new Empresa().Listar(0).FirstOrDefault(); var agenciaInfo = new Agencia().Listar(0).FirstOrDefault(); //var ventaInfo = new Negocio.VentaGasolutions().Listar(ventaPetroamericaId).FirstOrDefault(); var ventaInfoLista = new Negocio.VentaGasolutions().ListarPaginado(0, numeroDocumento, tipoDocumentoId, serie + "-" + correlativo, DateTime.ParseExact(fechaEmision, "dd/MM/yyyy", null), DateTime.ParseExact(fechaEmision, "dd/MM/yyyy", null), 0, 0, 0, 0); var ventaGasolutionsDetalleInfoLista = new List <VentaDetalleGasolutionsInfo>(); //var ventaGasolutionsDetalleInfo = new Negocio.VentaGasolutions().ListarDetalle(ventaPetroamericaId, 0).ToList(); //var ventaGasolutionsDetalleInfo = new Negocio.VentaGasolutions().ListarDetalle(ventaInfo.VentaGasolutionsId, 0).ToList(); ventaInfoLista = ventaInfoLista.Where(v => v.TotalVenta.Equals(montoTotalComprobante)).ToList(); var ventaInfo = new VentaGasolutionsInfo(); if (ventaInfoLista.Count > 0) { ventaInfo = ventaInfoLista.FirstOrDefault(); ventaGasolutionsDetalleInfoLista = new Negocio.VentaGasolutions().ListarDetalle(ventaInfo.VentaGasolutionsId, 0); } else { mensaje = "No se ha encontrado el comprobante." + "@" + "" + "@" + ventaInfo.NroDocumentoReceptor; return(mensaje); } var ventaDetalleInfo = new List <VentaDetalleInfo>(); _documento = new DocumentoElectronico(); #region Documento _documento.CalculoDetraccion = 0; _documento.CalculoIgv = Decimal.Divide(18, 100); _documento.CalculoIsc = 0; _documento.DescuentoGlobal = 0; #region Emisor var emisor = new DocumentoElectronico().Emisor; emisor.Departamento = ventaInfo.DepartamentoEmisor; emisor.Direccion = ventaInfo.DireccionEmisor; emisor.Distrito = ventaInfo.DistritoEmisor; emisor.NombreComercial = ventaInfo.NombreComercialEmisor; emisor.NombreLegal = ventaInfo.NombreLegalEmisor; emisor.NroDocumento = ventaInfo.NroDocumentoEmisor; emisor.Provincia = ventaInfo.ProvinciaEmisor; emisor.TipoDocumento = "6"; emisor.Ubigeo = ventaInfo.UbigeoEmisor; emisor.Urbanizacion = ""; _documento.Emisor = emisor; #endregion _documento.Exoneradas = 0; _documento.FechaEmision = ventaInfo.FechaEmision.ToString("dd/MM/yyyy"); _documento.Gratuitas = 0; _documento.Gravadas = ventaInfo.Gravadas; _documento.IdDocumento = ventaInfo.IdDocumento; _documento.Inafectas = 0; #region Items var itemId = 1; foreach (var vd in ventaGasolutionsDetalleInfoLista) { var item = new DetalleDocumento(); item.Cantidad = vd.Cantidad; item.Descripcion = vd.Descripcion; item.Id = vd.Id; itemId++; item.Impuesto = vd.Impuesto; item.PrecioUnitario = vd.PrecioUnitario; item.Suma = vd.TotalVenta; item.TotalVenta = vd.TotalVenta; item.UnidadMedida = vd.UnidadMedida; item.Descuento = 0; item.ImpuestoSelectivo = 0; item.OtroImpuesto = 0; item.PrecioReferencial = 0; item.TipoImpuesto = "10"; item.TipoPrecio = "01"; _documento.Items.Add(item); } #endregion _documento.Moneda = ventaInfo.MonedaId.Equals(Constantes.MonedaSoles) ? Constantes.MonedaSolesSunat : Constantes.MonedaDolaresSunat; _documento.MontoAnticipo = 0; _documento.MontoDetraccion = 0; _documento.MontoEnLetras = Herramientas.NumeroALetras.numeroAletras(ventaInfo.TotalVenta); _documento.MontoPercepcion = 0; _documento.PlacaVehiculo = ventaInfo.PlacaVehiculo; #region Receptor var receptor = new DocumentoElectronico().Receptor; receptor.Departamento = ""; receptor.Direccion = ventaInfo.DireccionReceptor; receptor.Distrito = ""; receptor.NombreComercial = ventaInfo.NombreComercialReceptor; receptor.NombreLegal = ventaInfo.NombreLegalReceptor; receptor.NroDocumento = ventaInfo.NroDocumentoReceptor; receptor.Provincia = ""; receptor.TipoDocumento = ventaInfo.TipoDocumentoReceptor; receptor.Ubigeo = ""; receptor.Urbanizacion = ""; _documento.Receptor = receptor; #endregion _documento.TipoDocumento = ventaInfo.TipoDocumento; _documento.TotalIgv = ventaInfo.TotalIgv; _documento.TotalIsc = 0; _documento.TotalOtrosTributos = 0; _documento.TotalVenta = ventaInfo.TotalVenta; #endregion string metodoApi; switch (_documento.TipoDocumento) { case "07": metodoApi = "api/GenerarNotaCredito"; break; case "08": metodoApi = "api/GenerarNotaDebito"; break; default: metodoApi = "api/GenerarFactura"; break; } var rutaPdfFactura = HostingEnvironment.MapPath("~/Archivos/Documentos/Cliente/" + ventaInfo.NroDocumentoReceptor + ""); #region Generando XML var client = new RestClient(BaseUrl); var requestInvoice = new RestRequest("GenerarFactura", Method.POST) { RequestFormat = DataFormat.Json }; requestInvoice.AddBody(_documento); var documentoResponse = client.Execute <DocumentoResponse>(requestInvoice); if (!documentoResponse.Data.Exito) { throw new ApplicationException(documentoResponse.Data.MensajeError); } // string rutaXml = HostingEnvironment.MapPath("~/Archivos/Facturacion/XML/" + _documento.IdDocumento + ".xml"); string rutaXml = HostingEnvironment.MapPath("~/Archivos/Documentos/Cliente") + "/" + ventaInfo.NroDocumentoReceptor; if (!Directory.Exists(rutaXml)) { Directory.CreateDirectory(rutaXml); } File.WriteAllBytes(rutaXml + "/" + _documento.IdDocumento + ".xml", Convert.FromBase64String(documentoResponse.Data.TramaXmlSinFirma)); #endregion #region Firma string rutaCertificado = HostingEnvironment.MapPath("~/Archivos/Facturacion/certificado.pfx"); var firmado = new FirmadoRequest { TramaXmlSinFirma = documentoResponse.Data.TramaXmlSinFirma, CertificadoDigital = Convert.ToBase64String(File.ReadAllBytes(rutaCertificado)), PasswordCertificado = "9dGxdmm5JHKwKsXc", UnSoloNodoExtension = false }; var requestFirma = new RestRequest("Firmar", Method.POST) { RequestFormat = DataFormat.Json }; requestFirma.AddBody(firmado); var responseFirma = client.Execute <FirmadoResponse>(requestFirma); if (!responseFirma.Data.Exito) { throw new ApplicationException(responseFirma.Data.MensajeError); } //string rutaXmlFirmado = HostingEnvironment.MapPath("~/Archivos/Facturacion/XML/Cliente/" + _documento.IdDocumento + "_Firmado.xml"); string rutaXmlFirmado = HostingEnvironment.MapPath("~/Archivos/Documentos/Cliente") + "/" + ventaInfo.NroDocumentoReceptor; if (!Directory.Exists(rutaXmlFirmado)) { Directory.CreateDirectory(rutaXmlFirmado); } File.WriteAllBytes(rutaXmlFirmado + "/" + _documento.IdDocumento + "_Firmado.xml", Convert.FromBase64String(responseFirma.Data.TramaXmlFirmado)); #endregion #region Impresión Comprobante var htmlToComprobante = new NReco.PdfGenerator.HtmlToPdfConverter(); var nombreArchivoComprobante = String.Empty; var comprobanteSB = new StringBuilder(); if (ventaInfo.TipoDocumento.Equals(Constantes.TipoComprobanteFactura)) { //comprobanteSB.Append(Herramientas.Helper.ObtenerTexto("~/Archivos/Plantillas/FacturaPowerGas.html")); comprobanteSB.Append(Herramientas.Helper.ObtenerTexto(PlantillaFactura)); #region Factura comprobanteSB.Replace("@EMPRESA_LOGO", HttpContext.Current.Server.MapPath(empresaInfo.Imagen)); comprobanteSB.Replace("@EMPRESA_NOMBRE", ventaInfo.NombreComercialEmisor); comprobanteSB.Replace("@EMPRESA_RUC", ventaInfo.NroDocumentoEmisor); comprobanteSB.Replace("@NUMEROCOMPROBANTE", ventaInfo.IdDocumento); comprobanteSB.Replace("@EMPRESA_DIRECCION", ventaInfo.DireccionEmisor); comprobanteSB.Replace("@EMPRESA_TELEFONO", String.Empty); comprobanteSB.Replace("@EMPRESA_FAX", String.Empty); comprobanteSB.Replace("@EMPRESA_PAIS", empresaInfo.Pais); comprobanteSB.Replace("@EMPRESA_DEPARTAMENTO", empresaInfo.Departamento); comprobanteSB.Replace("@EMPRESA_PROVINCIA", empresaInfo.Provincia); comprobanteSB.Replace("@EMPRESA_DISTRITO", empresaInfo.Distrito); comprobanteSB.Replace("@FECHAEMISION", ventaInfo.FechaEmision.ToString("dd/MM/yyyy")); comprobanteSB.Replace("@AGENCIA_DIRECCION", agenciaInfo.Direccion); //var clienteInfo = new Cliente().Listar(ventaInfo.ClienteId).FirstOrDefault(); comprobanteSB.Replace("@CLIENTE_NOMBRE", ventaInfo.NombreComercialReceptor); comprobanteSB.Replace("@CLIENTE_DIRECCION", ventaInfo.DireccionReceptor); comprobanteSB.Replace("@CLIENTE_DISTRITO", String.Empty); comprobanteSB.Replace("@CLIENTE_RUC", ventaInfo.NroDocumentoReceptor); comprobanteSB.Replace("@CLIENTE_CODIGO", String.Empty); comprobanteSB.Replace("@MONEDA", ventaInfo.Moneda); var facturaSBDetalle = new StringBuilder(""); facturaSBDetalle.Append("<table style=\"width: 100%; border-collapse: collapse;\">"); facturaSBDetalle.Append(" <thead>"); facturaSBDetalle.Append(" <tr>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border-bottom: 1px solid #0b44e9; text-align: center;\" class=\"Estilo67\">ITEM</td>"); facturaSBDetalle.Append(" <td style=\"width: 50%; border-bottom: 1px solid #0b44e9; text-align: center;\" class=\"Estilo67\">DESCRIPCIÓN</td>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border-bottom: 1px solid #0b44e9; text-align: center;\" class=\"Estilo67\">CANT</td>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border-bottom: 1px solid #0b44e9; text-align: center;\" class=\"Estilo67\">UND</td>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border-bottom: 1px solid #0b44e9; text-align: center;\" class=\"Estilo67\">VALOR UNIT</td>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border-bottom: 1px solid #0b44e9; text-align: center;\" class=\"Estilo67\">SUBTOTAL</td>"); facturaSBDetalle.Append(" </tr>"); facturaSBDetalle.Append(" </thead>"); var montoGravado = 0M; var montoImpuestoTotal = 0M; foreach (var vd in ventaGasolutionsDetalleInfoLista) { facturaSBDetalle.Append(" <tr>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border: 1px none #0b44e9; text-align: center; vertical-align: top;\" class=\"Estilo8\">" + vd.CodigoItem + "</td>"); facturaSBDetalle.Append(" <td style=\"width: 50%; border: 1px none #0b44e9; text-align: left; vertical-align: top;\" class=\"Estilo8\">" + vd.Descripcion + "</td>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border: 1px none #0b44e9; text-align: center; vertical-align: top;\" class=\"Estilo8\">" + ((vd.TotalVenta - vd.Impuesto) / vd.PrecioUnitario).ToString("N2") + "</td>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border: 1px none #0b44e9; text-align: center; vertical-align: top;\" class=\"Estilo8\">" + vd.UnidadMedida + "</td>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border: 1px none #0b44e9; text-align: center; vertical-align: top;\" class=\"Estilo8\">" + vd.PrecioUnitario.ToString("N2") + "</td>"); //facturaSBDetalle.Append(" <td style=\"width: 10%; border: 1px none #0b44e9; text-align: center; vertical-align: top;\" class=\"Estilo8\">" + (vd.Cantidad * vd.PrecioUnitario).ToString("N2") + "</td>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border: 1px none #0b44e9; text-align: center; vertical-align: top;\" class=\"Estilo8\">" + (vd.TotalVenta - vd.Impuesto).ToString("N2") + "</td>"); facturaSBDetalle.Append(" </tr>"); montoGravado = montoGravado + vd.TotalVenta; } facturaSBDetalle.Append("</table>"); var montoIgv = montoGravado * 0.18M; var montoTotal = montoGravado + montoIgv; comprobanteSB.Replace("@MONTO_GRAVADA", ventaInfo.Gravadas.ToString("N2")); comprobanteSB.Replace("@MONTO_INAFECTA", "0.00"); comprobanteSB.Replace("@MONTO_EXONERADA", "0.00"); comprobanteSB.Replace("@MONTO_GRATUITA", "0.00"); comprobanteSB.Replace("@MONTO_IGV", ventaInfo.TotalIgv.ToString("N2")); comprobanteSB.Replace("@MONTO_TOTAL", ventaInfo.TotalVenta.ToString("N2")); comprobanteSB.Replace("@PRODUCTO_DETALLE", facturaSBDetalle.ToString()); #endregion nombreArchivoComprobante = "Factura_" + DateTime.Now.ToString("ddMMyyyyhhmmss"); // + ".pdf"; } if (ventaInfo.TipoDocumento.Equals(Constantes.TipoComprobanteBoletaVenta)) { //comprobanteSB.Append(Herramientas.Helper.ObtenerTexto("~/Archivos/Plantillas/BoletaPowerGas.html")); comprobanteSB.Append(Herramientas.Helper.ObtenerTexto(PlantillaBoleta)); #region Boleta comprobanteSB.Replace("@EMPRESA_LOGO", HttpContext.Current.Server.MapPath(empresaInfo.Imagen)); comprobanteSB.Replace("@EMPRESA_NOMBRE", ventaInfo.NombreComercialEmisor); comprobanteSB.Replace("@EMPRESA_RUC", ventaInfo.NroDocumentoEmisor); comprobanteSB.Replace("@NUMEROCOMPROBANTE", ventaInfo.IdDocumento); comprobanteSB.Replace("@EMPRESA_DIRECCION", ventaInfo.DireccionEmisor); comprobanteSB.Replace("@EMPRESA_TELEFONO", String.Empty); comprobanteSB.Replace("@EMPRESA_FAX", String.Empty); comprobanteSB.Replace("@EMPRESA_PAIS", empresaInfo.Pais); comprobanteSB.Replace("@EMPRESA_DEPARTAMENTO", empresaInfo.Departamento); comprobanteSB.Replace("@EMPRESA_PROVINCIA", empresaInfo.Provincia); comprobanteSB.Replace("@EMPRESA_DISTRITO", empresaInfo.Distrito); comprobanteSB.Replace("@FECHAEMISION", ventaInfo.FechaEmision.ToString("dd/MM/yyyy")); comprobanteSB.Replace("@AGENCIA_DIRECCION", agenciaInfo.Direccion); //var clienteInfo = new Cliente().Listar(ventaInfo.ClienteId).FirstOrDefault(); comprobanteSB.Replace("@CLIENTE_NOMBRE", ventaInfo.NombreComercialReceptor); comprobanteSB.Replace("@CLIENTE_DIRECCION", ventaInfo.DireccionReceptor); comprobanteSB.Replace("@CLIENTE_DISTRITO", String.Empty); comprobanteSB.Replace("@CLIENTE_RUC", ventaInfo.NroDocumentoReceptor); comprobanteSB.Replace("@CLIENTE_CODIGO", String.Empty); comprobanteSB.Replace("@MONEDA", ventaInfo.Moneda); var facturaSBDetalle = new StringBuilder(""); facturaSBDetalle.Append("<table style=\"width: 100%; border-collapse: collapse;\">"); facturaSBDetalle.Append(" <thead>"); facturaSBDetalle.Append(" <tr>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border-bottom: 1px solid #0b44e9; text-align: center;\" class=\"Estilo67\">ITEM</td>"); facturaSBDetalle.Append(" <td style=\"width: 50%; border-bottom: 1px solid #0b44e9; text-align: center;\" class=\"Estilo67\">DESCRIPCIÓN</td>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border-bottom: 1px solid #0b44e9; text-align: center;\" class=\"Estilo67\">CANT</td>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border-bottom: 1px solid #0b44e9; text-align: center;\" class=\"Estilo67\">UND</td>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border-bottom: 1px solid #0b44e9; text-align: center;\" class=\"Estilo67\">VALOR UNIT</td>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border-bottom: 1px solid #0b44e9; text-align: center;\" class=\"Estilo67\">SUBTOTAL</td>"); facturaSBDetalle.Append(" </tr>"); facturaSBDetalle.Append(" </thead>"); var montoGravado = 0M; var montoImpuestoTotal = 0M; foreach (var vd in ventaGasolutionsDetalleInfoLista) { facturaSBDetalle.Append(" <tr>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border: 1px none #0b44e9; text-align: center; vertical-align: top;\" class=\"Estilo8\">" + vd.CodigoItem + "</td>"); facturaSBDetalle.Append(" <td style=\"width: 50%; border: 1px none #0b44e9; text-align: left; vertical-align: top;\" class=\"Estilo8\">" + vd.Descripcion + "</td>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border: 1px none #0b44e9; text-align: center; vertical-align: top;\" class=\"Estilo8\">" + ((vd.TotalVenta - vd.Impuesto) / vd.PrecioUnitario).ToString("N2") + "</td>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border: 1px none #0b44e9; text-align: center; vertical-align: top;\" class=\"Estilo8\">" + vd.UnidadMedida + "</td>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border: 1px none #0b44e9; text-align: center; vertical-align: top;\" class=\"Estilo8\">" + vd.PrecioUnitario.ToString("N2") + "</td>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border: 1px none #0b44e9; text-align: center; vertical-align: top;\" class=\"Estilo8\">" + (vd.TotalVenta - vd.Impuesto).ToString("N2") + "</td>"); facturaSBDetalle.Append(" </tr>"); montoGravado = montoGravado + vd.TotalVenta; } facturaSBDetalle.Append("</table>"); var montoIgv = montoGravado * 0.18M; var montoTotal = montoGravado + montoIgv; comprobanteSB.Replace("@MONTO_GRAVADA", ventaInfo.Gravadas.ToString("N2")); comprobanteSB.Replace("@MONTO_INAFECTA", "0.00"); comprobanteSB.Replace("@MONTO_EXONERADA", "0.00"); comprobanteSB.Replace("@MONTO_GRATUITA", "0.00"); comprobanteSB.Replace("@MONTO_IGV", ventaInfo.TotalIgv.ToString("N2")); comprobanteSB.Replace("@MONTO_TOTAL", ventaInfo.TotalVenta.ToString("N2")); comprobanteSB.Replace("@PRODUCTO_DETALLE", facturaSBDetalle.ToString()); #endregion nombreArchivoComprobante = "Boleta_" + DateTime.Now.ToString("ddMMyyyyhhmmss"); // + ".pdf"; } if (!Directory.Exists(rutaPdfFactura)) { Directory.CreateDirectory(rutaPdfFactura); } #region Codigo QR var codigoQR = ventaInfo.NroDocumentoReceptor + "|" + ventaInfo.TipoDocumento + "|" + ventaInfo.IdDocumento.Substring(0, 4) + "|" + ventaInfo.IdDocumento.Substring(5, ventaInfo.IdDocumento.Length - 5) + "|" + ventaInfo.TotalIgv + "|" + ventaInfo.TotalVenta + "|" + ventaInfo.FechaEmision + "|" + ventaInfo.TipoDocumentoReceptor + "|" + ventaInfo.NroDocumentoReceptor + "|" + responseFirma.Data.ResumenFirma + "|" + responseFirma.Data.ValorFirma; // instantiate a writer object var barcodeWriter = new BarcodeWriter(); // set the barcode format barcodeWriter.Format = BarcodeFormat.PDF_417; // write text and generate a 2-D barcode as a bitmap // barcodeWriter.Write(codigoQR).Save(@"C:\Users\jeremy\Desktop\generated.bmp"); //barcodeWriter.Write(codigoQR).Save(HostingEnvironment.MapPath("~/Archivos/Documentos/Cliente/" + ventaInfo.NumeroDocumentoCliente + "/" + _documento.IdDocumento + ".bmp")); barcodeWriter.Write(codigoQR).Save(rutaPdfFactura + "/" + _documento.IdDocumento + ".bmp"); #endregion comprobanteSB.Replace("@CODIGO_QR", HttpContext.Current.Server.MapPath("~/Archivos/Documentos/Cliente/" + ventaInfo.NroDocumentoReceptor + "/" + _documento.IdDocumento + ".bmp")); comprobanteSB.Replace("@MONTO_LETRAS", Herramientas.NumeroALetras.numeroAletras(ventaInfo.TotalVenta)); comprobanteSB = Herramientas.Helper.EncodeHtml(comprobanteSB); //var margins = new PageMargins(); //margins.Left = 1; //htmlToComprobante.Margins = margins; var pdfBytesFactura = htmlToComprobante.GeneratePdf(comprobanteSB.ToString()); // var comprobanteImpreso = rutaPdfFactura + "\\" + nombreArchivoComprobante + ".pdf"; File.WriteAllBytes(rutaPdfFactura + "/" + nombreArchivoComprobante + ".pdf", pdfBytesFactura); File.WriteAllBytes(rutaPdfFactura + "/" + nombreArchivoComprobante + ".xml", Convert.FromBase64String(responseFirma.Data.TramaXmlFirmado)); Negocio.Helper.ActualizarColumnasTabla("VentaGasolutions", new string[] { "ComprobanteImpreso" }, new string[] { nombreArchivoComprobante + ".pdf" }, new string[] { "VentaGasolutionsId" }, new string[] { ventaInfo.VentaGasolutionsId.ToString() }); #endregion mensaje = "El Comprobante se generó correctamente" + "@" + (nombreArchivoComprobante) + "@" + ventaInfo.NroDocumentoReceptor; } catch (Exception ex) { bool rethrow = ExceptionPolicy.HandleException(ex, Constantes.ExcepcionPoliticaPresentacion); mensaje = rethrow ? ex.Message : Constantes.ExcepcionPoliticaPresentacion; mensaje = (mensaje + "-" + ex.Source) + "@" + "" + "@" + ""; } return(mensaje); }
public static string ImprimirComprobanteAntes(string numeroDocumento, string tipoDocumentoId, string serie, string correlativo, string fechaEmision, decimal montoTotal) { var mensaje = String.Empty; try { var fecha = DateTime.ParseExact(fechaEmision, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture); // var ventaInfoLista = new Negocio.VentaPetroamerica().ListarPaginado(0, numeroDocumento.Trim(), tipoDocumentoId, serie, correlativo, fecha, fecha, 0, 0, String.Empty, 0, 0); var ventaInfoLista = new Negocio.VentaGasolutions().ListarPaginado(0, String.Empty, tipoDocumentoId, serie + "-" + correlativo, fecha, fecha, 0, 0, 0, 0); var ventaGasolutionsDetalleInfo = new VentaDetalleGasolutionsInfo(); ventaInfoLista = ventaInfoLista.Where(v => v.TotalVenta.Equals(montoTotal)).ToList(); var ventaInfo = new VentaGasolutionsInfo(); if (ventaInfoLista.Count > 0) { ventaInfo = ventaInfoLista.FirstOrDefault(); ventaGasolutionsDetalleInfo = new Negocio.VentaGasolutions().ListarDetalle(ventaInfo.VentaGasolutionsId, 0).FirstOrDefault(); } else { mensaje = "No se ha encontrado el comprobante." + "@" + "" + "@" + ventaInfo.NroDocumentoReceptor; return(mensaje); } var ventaDetalleInfo = new List <VentaDetalleInfo>(); _documento = new DocumentoElectronico(); #region Documento _documento.CalculoDetraccion = 0; _documento.CalculoIgv = Decimal.Divide(18, 100); _documento.CalculoIsc = 0; _documento.DescuentoGlobal = 0; #region Emisor var emisor = new DocumentoElectronico().Emisor; emisor.Departamento = ventaInfo.DepartamentoEmisor; emisor.Direccion = ventaInfo.DireccionEmisor; emisor.Distrito = ventaInfo.DistritoEmisor; emisor.NombreComercial = ventaInfo.NombreComercialEmisor; emisor.NombreLegal = ventaInfo.NombreLegalEmisor; emisor.NroDocumento = ventaInfo.NroDocumentoEmisor; emisor.Provincia = ventaInfo.ProvinciaEmisor; emisor.TipoDocumento = "6"; emisor.Ubigeo = ventaInfo.UbigeoEmisor; emisor.Urbanizacion = ""; _documento.Emisor = emisor; #endregion _documento.Exoneradas = 0; _documento.FechaEmision = ventaInfo.FechaEmision.ToString("dd/MM/yyyy"); _documento.Gratuitas = 0; _documento.Gravadas = ventaInfo.Gravadas; _documento.IdDocumento = ventaInfo.IdDocumento; _documento.Inafectas = 0; #region Items var itemId = 1; //foreach (var vd in ventaDetalleInfo) //{ var item = new DetalleDocumento(); //item.Cantidad = vd.Cantidad; item.Cantidad = ventaGasolutionsDetalleInfo.Cantidad; //item.Descripcion = vd.Producto; item.Descripcion = ventaGasolutionsDetalleInfo.Descripcion; //item.Id = itemId; item.Id = ventaGasolutionsDetalleInfo.Id; itemId++; //item.Impuesto = vd.Igv; item.Impuesto = ventaGasolutionsDetalleInfo.Impuesto; //item.PrecioUnitario = vd.PrecioUnitario; item.PrecioUnitario = ventaGasolutionsDetalleInfo.PrecioUnitario; //item.Suma = vd.SubTotal; item.Suma = ventaGasolutionsDetalleInfo.TotalVenta; //item.TotalVenta = vd.MontoTotal; item.TotalVenta = ventaGasolutionsDetalleInfo.TotalVenta; //item.UnidadMedida = vd.UnidadMedida; item.UnidadMedida = ventaGasolutionsDetalleInfo.UnidadMedida; item.Descuento = 0; item.ImpuestoSelectivo = 0; item.OtroImpuesto = 0; item.PrecioReferencial = 0; item.TipoImpuesto = "10"; item.TipoPrecio = "01"; _documento.Items.Add(item); //} #endregion _documento.Moneda = ventaInfo.MonedaId.Equals(Constantes.MonedaSoles) ? Constantes.MonedaSolesSunat : Constantes.MonedaDolaresSunat; _documento.MontoAnticipo = 0; _documento.MontoDetraccion = 0; _documento.MontoEnLetras = Herramientas.NumeroALetras.numeroAletras(ventaInfo.TotalVenta); _documento.MontoPercepcion = 0; _documento.PlacaVehiculo = ventaInfo.PlacaVehiculo; #region Receptor var receptor = new DocumentoElectronico().Receptor; receptor.Departamento = ""; receptor.Direccion = ventaInfo.DireccionReceptor; receptor.Distrito = ""; receptor.NombreComercial = ventaInfo.NombreComercialReceptor; receptor.NombreLegal = ventaInfo.NombreLegalReceptor; receptor.NroDocumento = ventaInfo.NroDocumentoReceptor; receptor.Provincia = ""; receptor.TipoDocumento = ventaInfo.TipoDocumentoReceptor; receptor.Ubigeo = ""; receptor.Urbanizacion = ""; _documento.Receptor = receptor; #endregion _documento.TipoDocumento = ventaInfo.TipoDocumento; _documento.TotalIgv = ventaInfo.TotalIgv; _documento.TotalIsc = 0; _documento.TotalOtrosTributos = 0; _documento.TotalVenta = ventaInfo.TotalVenta; #endregion string metodoApi; switch (_documento.TipoDocumento) { case "07": metodoApi = "api/GenerarNotaCredito"; break; case "08": metodoApi = "api/GenerarNotaDebito"; break; default: metodoApi = "api/GenerarFactura"; break; } var rutaPdfFactura = HostingEnvironment.MapPath("~/Archivos/Documentos/Cliente/" + ventaInfo.NroDocumentoReceptor + ""); #region Generando XML var client = new RestClient(BaseUrl); var requestInvoice = new RestRequest("GenerarFactura", Method.POST) { RequestFormat = DataFormat.Json }; requestInvoice.AddBody(_documento); var documentoResponse = client.Execute <DocumentoResponse>(requestInvoice); if (!documentoResponse.Data.Exito) { throw new ApplicationException(documentoResponse.Data.MensajeError); } // string rutaXml = HostingEnvironment.MapPath("~/Archivos/Facturacion/XML/" + _documento.IdDocumento + ".xml"); string rutaXml = HostingEnvironment.MapPath("~/Archivos/Facturacion/XML/Cliente"); if (!Directory.Exists(rutaXml)) { Directory.CreateDirectory(rutaXml); } File.WriteAllBytes(rutaXml + "/" + _documento.IdDocumento + ".xml", Convert.FromBase64String(documentoResponse.Data.TramaXmlSinFirma)); #endregion #region Firma string rutaCertificado = HostingEnvironment.MapPath("~/Archivos/Facturacion/certificado.pfx"); var firmado = new FirmadoRequest { TramaXmlSinFirma = documentoResponse.Data.TramaXmlSinFirma, CertificadoDigital = Convert.ToBase64String(File.ReadAllBytes(rutaCertificado)), PasswordCertificado = "9dGxdmm5JHKwKsXc", UnSoloNodoExtension = false }; var requestFirma = new RestRequest("Firmar", Method.POST) { RequestFormat = DataFormat.Json }; requestFirma.AddBody(firmado); var responseFirma = client.Execute <FirmadoResponse>(requestFirma); if (!responseFirma.Data.Exito) { throw new ApplicationException(responseFirma.Data.MensajeError); } //string rutaXmlFirmado = HostingEnvironment.MapPath("~/Archivos/Facturacion/XML/Cliente/" + _documento.IdDocumento + "_Firmado.xml"); string rutaXmlFirmado = HostingEnvironment.MapPath("~/Archivos/Facturacion/XML/Cliente"); if (!Directory.Exists(rutaXmlFirmado)) { Directory.CreateDirectory(rutaXmlFirmado); } File.WriteAllBytes(rutaXmlFirmado + "/" + _documento.IdDocumento + "_Firmado.xml", Convert.FromBase64String(responseFirma.Data.TramaXmlFirmado)); #endregion #region Impresión Comprobante var htmlToComprobante = new NReco.PdfGenerator.HtmlToPdfConverter(); var nombreArchivoComprobante = String.Empty; var comprobanteSB = new StringBuilder(); if (ventaInfo.TipoDocumento.Equals(Constantes.TipoComprobanteFactura)) { comprobanteSB.Append(Herramientas.Helper.ObtenerTexto("~/Archivos/Plantillas/FacturaJulcan.html")); #region Factura //comprobanteSB.Replace("@EMPRESA_LOGO", HttpContext.Current.Server.MapPath("~/Imagenes/petroamerica_logo.png")); comprobanteSB.Replace("@EMPRESA_LOGO", String.Empty); comprobanteSB.Replace("@EMPRESA_NOMBRE", ventaInfo.NombreComercialEmisor); comprobanteSB.Replace("@EMPRESA_DIRECCION", ventaInfo.DireccionEmisor); comprobanteSB.Replace("@GRIFO_DIRECCION", String.Empty); comprobanteSB.Replace("@EMPRESA_RUC", ventaInfo.NroDocumentoEmisor); comprobanteSB.Replace("@IMPRESORA", String.Empty); comprobanteSB.Replace("@NUMEROCOMPROBANTE", ventaInfo.IdDocumento); comprobanteSB.Replace("@FECHA", fechaEmision); comprobanteSB.Replace("@FECHA", fechaEmision); comprobanteSB.Replace("@CLIENTE_NOMBRE", ventaInfo.NombreComercialReceptor); comprobanteSB.Replace("@CLIENTE_RUC", ventaInfo.NroDocumentoReceptor); comprobanteSB.Replace("@CLIENTE_PLACA", ventaInfo.PlacaVehiculo); comprobanteSB.Replace("@CLIENTE_DIRECCION", ventaInfo.DireccionReceptor); comprobanteSB.Replace("@CANTIDAD", ventaGasolutionsDetalleInfo.Cantidad.ToString("N2")); comprobanteSB.Replace("@PRECIO", ventaGasolutionsDetalleInfo.PrecioUnitario.ToString("N2")); comprobanteSB.Replace("@MONTO_VENTA", ventaInfo.Gravadas.ToString("N2")); comprobanteSB.Replace("@PRODUCTO", ventaGasolutionsDetalleInfo.Descripcion); comprobanteSB.Replace("@MONEDA_SIMBOLO", ventaInfo.SimboloMoneda); comprobanteSB.Replace("@MONTO_IMPUESTO", ventaInfo.TotalIgv.ToString("N2")); comprobanteSB.Replace("@MONTO_TOTAL", ventaInfo.TotalVenta.ToString("N2")); comprobanteSB.Replace("@VENDEDOR", String.Empty); comprobanteSB.Replace("@CODIGO_HASH", responseFirma.Data.ResumenFirma); comprobanteSB.Replace("@TEXTO_MONTO_TOTAL", NumeroALetras.numeroAletras(ventaInfo.TotalVenta)); #endregion nombreArchivoComprobante = "Factura_" + DateTime.Now.ToString("ddMMyyyyhhmmss"); // + ".pdf"; } if (ventaInfo.TipoDocumento.Equals(Constantes.TipoComprobanteBoletaVenta)) { comprobanteSB.Append(Herramientas.Helper.ObtenerTexto("~/Archivos/Plantillas/BoletaJulcan.html")); #region Boleta //comprobanteSB.Replace("@EMPRESA_LOGO", HttpContext.Current.Server.MapPath("~/Imagenes/petroamerica_logo.png")); comprobanteSB.Replace("@EMPRESA_LOGO", String.Empty); comprobanteSB.Replace("@EMPRESA_NOMBRE", ventaInfo.NombreComercialEmisor); comprobanteSB.Replace("@EMPRESA_DIRECCION", ventaInfo.DireccionEmisor); comprobanteSB.Replace("@GRIFO_DIRECCION", String.Empty); comprobanteSB.Replace("@EMPRESA_RUC", ventaInfo.NroDocumentoEmisor); comprobanteSB.Replace("@IMPRESORA", String.Empty); comprobanteSB.Replace("@NUMEROCOMPROBANTE", ventaInfo.IdDocumento); comprobanteSB.Replace("@FECHA", fechaEmision); comprobanteSB.Replace("@CLIENTE_NOMBRE", ventaInfo.NombreComercialReceptor); comprobanteSB.Replace("@CLIENTE_DIRECCION", ventaInfo.DireccionReceptor); comprobanteSB.Replace("@CANTIDAD", ventaGasolutionsDetalleInfo.Cantidad.ToString("N2")); comprobanteSB.Replace("@PRECIO", ventaGasolutionsDetalleInfo.PrecioUnitario.ToString("N2")); comprobanteSB.Replace("@MONTO_VENTA", ventaInfo.Gravadas.ToString("N2")); comprobanteSB.Replace("@PRODUCTO", ventaGasolutionsDetalleInfo.Descripcion); comprobanteSB.Replace("@MONEDA_SIMBOLO", ventaInfo.SimboloMoneda); comprobanteSB.Replace("@MONTO_IMPUESTO", ventaInfo.TotalIgv.ToString("N2")); comprobanteSB.Replace("@MONTO_TOTAL", ventaInfo.TotalVenta.ToString("N2")); comprobanteSB.Replace("@VENDEDOR", String.Empty); comprobanteSB.Replace("@CODIGO_HASH", responseFirma.Data.ResumenFirma); comprobanteSB.Replace("@TEXTO_MONTO_TOTAL", NumeroALetras.numeroAletras(ventaInfo.TotalVenta)); #endregion nombreArchivoComprobante = "Boleta_" + DateTime.Now.ToString("ddMMyyyyhhmmss"); // + ".pdf"; } if (!Directory.Exists(rutaPdfFactura)) { Directory.CreateDirectory(rutaPdfFactura); } #region Codigo QR var codigoQR = ventaInfo.NroDocumentoReceptor + "|" + ventaInfo.TipoDocumento + "|" + ventaInfo.IdDocumento.Substring(0, 4) + "|" + ventaInfo.IdDocumento.Substring(5, 8) + "|" + ventaInfo.TotalIgv + "|" + ventaInfo.TotalVenta + "|" + ventaInfo.FechaEmision + "|" + ventaInfo.TipoDocumentoReceptor + "|" + ventaInfo.NroDocumentoReceptor + "|" + responseFirma.Data.ResumenFirma + "|" + responseFirma.Data.ValorFirma; // instantiate a writer object var barcodeWriter = new ZXing.BarcodeWriter(); // set the barcode format barcodeWriter.Format = BarcodeFormat.PDF_417; // write text and generate a 2-D barcode as a bitmap // barcodeWriter.Write(codigoQR).Save(@"C:\Users\jeremy\Desktop\generated.bmp"); //barcodeWriter.Write(codigoQR).Save(HostingEnvironment.MapPath("~/Archivos/Documentos/Cliente/" + ventaInfo.NumeroDocumentoCliente + "/" + _documento.IdDocumento + ".bmp")); barcodeWriter.Write(codigoQR).Save(rutaPdfFactura + "/" + _documento.IdDocumento + ".bmp"); #endregion comprobanteSB.Replace("@CODIGO_QR", HttpContext.Current.Server.MapPath("~/Archivos/Documentos/Cliente/" + ventaInfo.NroDocumentoReceptor + "/" + _documento.IdDocumento + ".bmp")); comprobanteSB = Herramientas.Helper.EncodeHtml(comprobanteSB); //var margins = new PageMargins(); //margins.Left = 1; //htmlToComprobante.Margins = margins; var pdfBytesFactura = htmlToComprobante.GeneratePdf(comprobanteSB.ToString()); // var comprobanteImpreso = rutaPdfFactura + "\\" + nombreArchivoComprobante + ".pdf"; File.WriteAllBytes(rutaPdfFactura + "/" + nombreArchivoComprobante + ".pdf", pdfBytesFactura); File.WriteAllBytes(rutaPdfFactura + "/" + nombreArchivoComprobante + ".xml", Convert.FromBase64String(responseFirma.Data.TramaXmlFirmado)); #endregion mensaje = "El Comprobante se generó correctamente" + "@" + nombreArchivoComprobante + "@" + ventaInfo.NroDocumentoReceptor; } catch (Exception ex) { bool rethrow = ExceptionPolicy.HandleException(ex, Constantes.ExcepcionPoliticaPresentacion); mensaje = rethrow ? ex.Message : Constantes.ExcepcionPoliticaPresentacion; // var sex = new SmartException(ex, usuarioInfo.Matricula, codigoOperacion.ToString()); //RegistrarScript("MostrarMensaje('" + mensaje.Replace("'", "") + "');", "ErrorConsultaComprobante"); mensaje = (mensaje + "-" + ex.Source) + "@" + "" + "@" + numeroDocumento; } return(mensaje); }
public ActionResult Facturar(Guid?Id_Doc, decimal ValorPagado_Doc, decimal Valor_Doc, decimal ValorLavado, decimal ValorCasillero) { IngresoVehiculoView ingresoVehiculoView = new IngresoVehiculoView(); ImprimirTicket imprimirTicket = new ImprimirTicket(); Imprimir imprimir = new Imprimir(); using (var transaccion = db.Database.BeginTransaction()) { Mensaje mensaje = new Mensaje(); try { if (ValorPagado_Doc <= 0) { throw new Exception("Por favor ingrese un valor total valido."); } DateTime dateTime = DateTime.Now; Documento documento1 = db.Documento.Find(Id_Doc); if (documento1 == null || documento1.Id_Doc == Guid.Empty) { throw new Exception("por favor envié un documento valido."); } if (documento1.Parqueadero.Lavar) { if (ValorLavado > 0) { documento1.ValorLavado = ValorLavado; } } if (documento1.Parqueadero.Casillero) { if (ValorCasillero > 0) { documento1.ValorCasillero = ValorCasillero; } } documento1.Valor_Doc = Valor_Doc; documento1.ValorPagado_Doc = ValorPagado_Doc; documento1.FachaFinalizacion_Doc = dateTime; documento1.Estado_Doc = false; db.Entry(documento1).State = EntityState.Modified; foreach (var item in db.DetalleDocumento.Where(t => t.Id_Doc == documento1.Id_Doc).ToList()) { DetalleDocumento detalleDocumento1 = item; detalleDocumento1.Estado_DDoc = false; db.Entry(documento1).State = EntityState.Modified; } DetalleDocumento detalleDocumento = new DetalleDocumento(); detalleDocumento.Estado_DDoc = false; detalleDocumento.Horas_DDoc = dateTime; detalleDocumento.Id_Doc = documento1.Id_Doc; detalleDocumento.Id_DDoc = Guid.NewGuid(); db.DetalleDocumento.Add(detalleDocumento); db.SaveChanges(); Parqueadero parqueadero = db.Parqueaderoes.Find(documento1.Id_Parq); imprimir.NombreParqueadero = documento1.Parqueadero.NombreEmpresa_Parq.ToUpper(); imprimir.Direccion = documento1.Parqueadero.Direccion_Parq.ToUpper(); imprimir.NitParqueadero = documento1.Parqueadero.NitEmpresa_Parq.ToUpper(); imprimir.TipoVehiculo = db.TipoVehiculos.Find(documento1.Vehiculo.TipoVehiculo.Id_TVeh).Nombre_TVeh.ToUpper(); imprimir.Placa = documento1.Vehiculo.Placa_Veh.ToUpper(); imprimir.Fecha = DateTime.Now.Date; imprimir.Horas = documento1.DetalleDocumento.FirstOrDefault().Horas_DDoc; imprimir.Impresora = documento1.Parqueadero.Impresora_Parq; imprimir.ValorParqueadero = Valor_Doc; imprimir.ValotTotal = documento1.ValorPagado_Doc; imprimir.Lavar = (ValorLavado > 0) ? true : false; imprimir.Casillero = (ValorCasillero > 0) ? true : false; imprimir.ValotCasillero = ValorCasillero; imprimir.ValotLavar = ValorLavado; imprimir.Observaciones = documento1.Observaciones; imprimir.Transcurrido = GetCalculoHoraValor(documento1).DetalleDocumento.FirstOrDefault().Transcurrido_DDoc; imprimir.ValorXVehiculo = documento1.Vehiculo.TipoVehiculo.Valor_TVeh; imprimir.TiempoXVehiculo = parqueadero.PagoMinutos_Parq; imprimir.HoraApertura = parqueadero.HoraApertura_Parq; imprimir.HoraCierre = parqueadero.HoraCierre_Parq; //imprimirTicket.Generar(imprimir, documento1.Parqueadero.ImprimirFactura_Parq, true); transaccion.Commit(); return(PartialView("_FacturaViewPartial", imprimir)); } catch (Exception ex) { transaccion.Rollback(); //ModelState.AddModelError(string.Empty, string.Format("Error al facturar: {0}", ex.Message)); //return Json(new { data = ex.Message }, JsonRequestBehavior.AllowGet); mensaje.DescripcionMensaje = string.Format("Error al ingresar vehiculo: {0}", ex.Message); return(PartialView("AlertMensajerViewPartial", mensaje)); //return View("Index", CagarVista(ingresoVehiculoView)); } } return(Json(new { data = imprimir }, JsonRequestBehavior.AllowGet)); //return View("Index", CagarVista(ingresoVehiculoView)); }
private void DatosFactura() { var dtsEmisor = new Contribuyente() { NroDocumento = "20556442259", TipoDocumento = "6", Direccion = "CAL.GERMAN SCHREIBER NRO. 276 LIMA - LIMA - SAN ISIDRO", Departamento = "PIURA", Provincia = "PIURA", Distrito = "PIURA", NombreLegal = "LUNA VERDE SOCIEDAD ANONIMA CERRADA", NombreComercial = "", Ubigeo = "150131", CodDomicilioFiscal = "0000" //Código de cuatro dígitos asignado por SUNAT }; var dtsReceptor = new Contribuyente() { NroDocumento = "10479617967", TipoDocumento = "6", NombreLegal = "TORRES LEON ERWIN STALIN", NombreComercial = "", Direccion = "PIURA - PIURA - PIURA" }; _documento.Items.Clear(); _documento.TipoOperacion = "0101"; //0101 - Venta interna - 1001 Venta interna sujeta a detracción for (var i = 1; i < 2; i++) { _documento.CalculoIgv = 0.18m; var dtsItems = new DetalleDocumento { Id = i, Cantidad = 1m, UnidadMedida = "NIU", CodigoItem = "COD001" + i, //ItemClassificationCode = "82141601",// Este código será obligatorio para el 1-1-2019 - catálogo N° 15 del Anexo N° 8 - OBLIGATOIO PARA EXPORTACIONES DESDE NOVIEMBRE Descripcion = "PRODUCTO PRUEBA", PrecioUnitario = 84.7457627119m, //Consignar 0.00 siempre y cuando la factura sea gratuita - TipoImpuesto=21 PrecioReferencial = 100m, TipoPrecio = "01", //Se usa 02 cuando el tipo de impuesto es gratuito - Valor referencial unitario en operaciones no onerosas TipoImpuesto = "10", OtroImpuesto = 0, Descuento = 0, Suma = 84.7457627119m * 1m, //_detalle.PrecioUnitario * _detalle.Cantidad Impuesto = (84.7457627119m * 1m) * _documento.CalculoIgv, //_detalle.Suma * _documento.CalculoIgv ImpuestoSelectivo = 0, //_detalle.Suma * _documento.CalculoIsc; TotalVenta = (84.7457627119m * 1m) - 0, //_detalle.Suma - _detalle.Descuento //CodDetraccion="022", //catalogo54 //PorcentajeDetraccion ="20", //MontoDetraccion=0.00m }; //Agregamos Detalle _documento.Items.Add(dtsItems); } _documento.Cargos = 2.00m; //Usar solo si la factura tendrá cargos adicionas - flete _documento.IdDocumento = "F005-00000006"; _documento.TipoDocumento = "01"; _documento.Emisor = dtsEmisor; _documento.Receptor = dtsReceptor; _documento.FechaEmision = DateTime.Today.ToShortDateString(); _documento.IssueTime = String.Format("{0:HH:mm:ss}", DateTime.Now); _documento.Moneda = "PEN"; _documento.Glosa = "Aquí algun información para SUNAT"; _documento.Imcoterm = _documento.TipoOperacion == "0200" ? "FOB" : ""; //Si TipoOperacion es exportacion se agrega tipo de IMCOTERMS _documento.OrderReference = ""; if (_documento.TipoOperacion == "0200") { var dato = _documento.Items.Where(x => x.ItemClassificationCode == null).Any(); if (dato) { MessageBox.Show("El tipo de operación es EXPORTACION, por favor agregar un código de producto según SUNAT"); return; } } _documento.DescuentoGlobal = 0.85m; //Descuento aplica de acuerdo al porcentaje /*DETRACCION*/ _documento.MediosPago.PaymentMeansCode = "001"; //Medio de pago según catálago 59 _documento.MediosPago.ID = "123456789"; //Numero de cuenta de banco CalcularTotales(); }
private void DatosNCredito() { var dtsEmisor = new Contribuyente() { NroDocumento = "20561278441", TipoDocumento = "6", Direccion = "AV. TACNA NRO. 516 LAMBAYEQUE - FERREÑAFE - FERREÑAFE", Departamento = "LAMBAYEQUE", Provincia = "FERREÑAFE", Distrito = "FERREÑAFE", NombreLegal = "INVERSIONES NANDO´S CHICKEN SAC", NombreComercial = "", Ubigeo = "140201", CodDomicilioFiscal = "0000" //Código de cuatro dígitos asignado por SUNAT }; var dtsReceptor = new Contribuyente() { NroDocumento = "-", TipoDocumento = "0", NombreLegal = "TORRES LEON ERWIN STALIN", NombreComercial = "", Direccion = "PIURA - PIURA - PIURA" }; _documento.Items.Clear(); for (var i = 1; i < 3; i++) { _documento.CalculoIgv = 0.00m; var dtsItems = new DetalleDocumento { Id = i, Cantidad = 1m, UnidadMedida = "NIU", CodigoItem = "COD001" + i, //ItemClassificationCode = "82141601",// Este código será obligatorio para el 1-1-2019 - catálogo N° 15 del Anexo N° 8 - OBLIGATOIO PARA EXPORTACIONES DESDE NOVIEMBRE Descripcion = "PRODUCTO PRUEBA", PrecioUnitario = 42.3728m, //Consignar 0.00 siempre y cuando la factura sea gratuita - TipoImpuesto=21 PrecioReferencial = 50m, TipoPrecio = "01", //Se usa 02 cuando el tipo de impuesto es gratuito - Valor referencial unitario en operaciones no onerosas TipoImpuesto = "40", OtroImpuesto = 0, Descuento = 0, Suma = 42.3728m * 1m, //_detalle.PrecioUnitario * _detalle.Cantidad Impuesto = (42.3728m * 1m) * _documento.CalculoIgv, //_detalle.Suma * _documento.CalculoIgv ImpuestoSelectivo = 0, //_detalle.Suma * _documento.CalculoIsc; TotalVenta = (42.3728m * 1m) - 0 //_detalle.Suma - _detalle.Descuento }; //Agregamos Detalle _documento.Items.Add(dtsItems); } _documento.Cargos = 2.00m; _documento.IdDocumento = "FC05-00000005"; _documento.TipoDocumento = "07"; _documento.Emisor = dtsEmisor; _documento.Receptor = dtsReceptor; _documento.FechaEmision = DateTime.Today.ToShortDateString(); _documento.Moneda = "PEN"; _documento.TipoOperacion = "0200"; //_documento.Imcoterm = "FCA"; //Esto se usa para la factura de exportacion - ver listado de IMCOTERM CalcularTotales(); //Nota de Credito _documento.Relacionados.Clear(); var dtsDocumentoRelacionado = new DocumentoRelacionado { NroDocumento = "F005-00000005", TipoDocumento = "01" }; _documento.Relacionados.Add(dtsDocumentoRelacionado); _documento.Discrepancias.Clear(); var dtsDiscrepancia = new Discrepancia { NroReferencia = "F005-00000005", Tipo = "09", Descripcion = "Nota de Credito del usuario admin" }; _documento.Discrepancias.Add(dtsDiscrepancia); }
public ActionResult IngresarVehiculos(Guid?TipoVehiculosView, Guid?Id_Parq, string Placa, bool?Lavar, bool?Casillero, int?CantidadCasillero, string ObservacionCasillero) { using (var transaccion = db.Database.BeginTransaction()) { IngresoVehiculoView ingresoVehiculoView = new IngresoVehiculoView(); Mensaje mensaje = new Mensaje(); try { string IdUsuario = User.Identity.GetUserId(); if (Id_Parq == null || Id_Parq == Guid.Empty) { throw new Exception("No tiene ningun parqueadero asignado."); } if (TipoVehiculosView == null || TipoVehiculosView == Guid.Empty) { throw new Exception("Por favor seleccionar un tipo de vehiculo."); } if (string.IsNullOrWhiteSpace(Placa)) { throw new Exception("Por favor ingrese la placa del vehiculo."); } if (Placa.Length <= 4) { throw new Exception("Por favor la placa del vehiculo debe tener mas de 4 caracteres."); } Lavar = (Lavar == null) ? false : Lavar; Casillero = (Casillero == null) ? false : Casillero; CantidadCasillero = (CantidadCasillero == null) ? 0 : CantidadCasillero; if (Casillero.Value) { if (CantidadCasillero <= 0 || string.IsNullOrWhiteSpace(ObservacionCasillero)) { throw new Exception("Por favor ingresar la cantidad o nombre de los articulos."); } } DateTime dateTime = DateTime.Now; Vehiculo vehiculo = new Vehiculo(); Parqueadero parqueadero = new Parqueadero(); Documento documento = new Documento(); DetalleDocumento detalleDocumento = new DetalleDocumento(); vehiculo = db.Vehiculo.Where(t => t.Placa_Veh.ToLower() == Placa.ToLower()).FirstOrDefault(); parqueadero = db.Parqueaderoes.Find(Id_Parq); if (vehiculo == null) { TipoVehiculos tipoVehiculos = new TipoVehiculos(); tipoVehiculos = db.TipoVehiculos.Find(TipoVehiculosView); if (tipoVehiculos == null || tipoVehiculos.Id_TVeh == Guid.Empty) { throw new Exception("El tipo de vehiculo seleccionado no existe."); } ingresoVehiculoView.Vehiculo = new Vehiculo(); ingresoVehiculoView.Vehiculo.Id_Veh = Guid.NewGuid(); ingresoVehiculoView.Vehiculo.Estado_veh = true; ingresoVehiculoView.Vehiculo.Id_TVeh = tipoVehiculos.Id_TVeh; ingresoVehiculoView.Vehiculo.Placa_Veh = Placa; vehiculo = ingresoVehiculoView.Vehiculo; db.Vehiculo.Add(vehiculo); db.SaveChanges(); } if (vehiculo.Documento != null) { if (vehiculo.Documento.Where(t => t.Estado_Doc == true && t.Id_Parq == Id_Parq).Count() > 0) { throw new Exception(string.Format("El vehiculo de tipo {0} con placa {1} ya tiene un ingreso en el parqueadero", vehiculo.TipoVehiculo.Nombre_TVeh, vehiculo.Placa_Veh.ToUpper())); } } if (Lavar.Value) { if (vehiculo.TipoVehiculo.ValorLavado_TVeh > 0) { documento.ValorLavado = vehiculo.TipoVehiculo.ValorLavado_TVeh; } else { throw new Exception($"El tipo de vehiculo {vehiculo.TipoVehiculo.Nombre_TVeh} no tiene valor configurado para el lavado de vehiculos."); } } if (Casillero.Value) { if (vehiculo.TipoVehiculo.ValorLavado_TVeh > 0) { documento.ValorCasillero = vehiculo.TipoVehiculo.ValorCasillero_TVeh * CantidadCasillero.Value; } else { throw new Exception($"El tipo de vehiculo {vehiculo.TipoVehiculo.Nombre_TVeh} no tiene valor configurado para el casillero de vehiculos."); } } if (CantidadCasillero > 0 && !string.IsNullOrWhiteSpace(ObservacionCasillero)) { documento.Observaciones = $"{CantidadCasillero.Value}, {ObservacionCasillero}"; } documento.Id_Veh = vehiculo.Id_Veh; documento.Id_Parq = parqueadero.Id_Parq; documento.Id_Doc = Guid.NewGuid(); documento.Usuario_Doc = IdUsuario; documento.Valor_Doc = 0; documento.Consecutivo = db.Documento.ToList().Count + 1; documento.Estado_Doc = true; documento.FechaCreacion_Doc = dateTime; documento.FachaFinalizacion_Doc = DateTime.MaxValue; db.Documento.Add(documento); db.SaveChanges(); detalleDocumento.Estado_DDoc = true; detalleDocumento.Horas_DDoc = dateTime; detalleDocumento.Id_DDoc = Guid.NewGuid(); detalleDocumento.Id_Doc = documento.Id_Doc; db.DetalleDocumento.Add(detalleDocumento); db.SaveChanges(); ImprimirTicket imprimirTicket = new ImprimirTicket(); Imprimir imprimir = new Imprimir(); imprimir.NombreParqueadero = documento.Parqueadero.NombreEmpresa_Parq.ToUpper(); imprimir.Direccion = documento.Parqueadero.Direccion_Parq.ToUpper(); imprimir.NitParqueadero = documento.Parqueadero.NitEmpresa_Parq.ToUpper(); imprimir.TipoVehiculo = db.TipoVehiculos.Find(vehiculo.Id_TVeh).Nombre_TVeh.ToUpper(); imprimir.Placa = vehiculo.Placa_Veh.ToUpper(); imprimir.Fecha = DateTime.Now.Date; imprimir.Horas = documento.DetalleDocumento.FirstOrDefault().Horas_DDoc; imprimir.Impresora = documento.Parqueadero.Impresora_Parq; imprimir.ValorParqueadero = 0; imprimir.Lavar = Lavar.Value; imprimir.Casillero = Casillero.Value; imprimir.ValotLavar = documento.ValorLavado; imprimir.ValotCasillero = documento.ValorCasillero; imprimir.Observaciones = documento.Observaciones; imprimir.ValorXVehiculo = vehiculo.TipoVehiculo.Valor_TVeh; imprimir.TiempoXVehiculo = parqueadero.PagoMinutos_Parq; imprimir.HoraApertura = parqueadero.HoraApertura_Parq; imprimir.HoraCierre = parqueadero.HoraCierre_Parq; //imprimir.Transcurrido = GetCalculoHoraValor(documento).DetalleDocumento.FirstOrDefault().Transcurrido_DDoc; imprimir.Transcurrido = "Inicio"; //imprimirTicket.Generar(imprimir, documento.Parqueadero.ImprimirIngreso_Parq, false); transaccion.Commit(); return(PartialView("_FacturaViewPartial", imprimir)); } catch (Exception ex) { transaccion.Rollback(); mensaje.DescripcionMensaje = string.Format("Error al ingresar vehiculo: {0}", ex.Message); //ModelState.AddModelError(string.Empty, string.Format("Error al ingresar vehiculo: {0}", ex.Message)); return(PartialView("AlertMensajerViewPartial", mensaje)); //return View("Index", CagarVista(ingresoVehiculoView)); } } return(RedirectToAction("Index")); }
public static string ImprimirComprobante(int ventaId) { var mensaje = String.Empty; try { var usuarioInfo = ObtenerUsuarioInfo(); var ventaInfo = new Negocio.Venta().Listar(ventaId).FirstOrDefault(); var ventaDetalleInfo = new Negocio.Venta().ListarDetalle(ventaId, 0); var empresaInfo = new Empresa().Listar(usuarioInfo.EmpresaId).FirstOrDefault(); var facturaSB = new StringBuilder(); if (ventaInfo.TipoComprobanteId.Equals(Constantes.TipoComprobanteFactura)) { facturaSB.Append(Herramientas.Helper.ObtenerTexto("~/Archivos/Plantillas/FacturaApu.html")); } if (ventaInfo.TipoComprobanteId.Equals(Constantes.TipoComprobanteBoletaVenta)) { facturaSB.Append(Herramientas.Helper.ObtenerTexto("~/Archivos/Plantillas/BoletaApu.html")); } var fechaEmision = DateTime.Now; facturaSB.Replace("@EMPRESA_LOGO", HttpContext.Current.Server.MapPath(empresaInfo.Imagen)); facturaSB.Replace("@EMPRESA_NOMBRE", empresaInfo.RazonSocial); facturaSB.Replace("@EMPRESA_RUC", empresaInfo.NumeroDocumento); facturaSB.Replace("@NUMEROCOMPROBANTE", ventaInfo.NumeroSerie + "-" + ventaInfo.NumeroComprobante); facturaSB.Replace("@EMPRESA_DIRECCION", empresaInfo.Direccion); facturaSB.Replace("@EMPRESA_TELEFONO", empresaInfo.Telefono); facturaSB.Replace("@EMPRESA_FAX", empresaInfo.Fax); facturaSB.Replace("@EMPRESA_PAIS", empresaInfo.Pais); facturaSB.Replace("@EMPRESA_DEPARTAMENTO", empresaInfo.Departamento); facturaSB.Replace("@EMPRESA_PROVINCIA", empresaInfo.Provincia); facturaSB.Replace("@EMPRESA_DISTRITO", empresaInfo.Distrito); facturaSB.Replace("@FECHAEMISION", ventaInfo.FechaEmision.ToString("dd/MM/yyyy")); facturaSB.Replace("@AGENCIA_DIRECCION", ventaInfo.Agencia); var clienteInfo = new Cliente().Listar(ventaInfo.ClienteId).FirstOrDefault(); facturaSB.Replace("@CLIENTE_NOMBRE", clienteInfo.TipoPersonaId.Equals(Constantes.TipoPersonaNatural) ? (clienteInfo.Nombres + "," + clienteInfo.ApellidoPaterno + " " + clienteInfo.ApellidoMaterno) : clienteInfo.RazonSocial); facturaSB.Replace("@CLIENTE_DIRECCION", clienteInfo.Direccion); facturaSB.Replace("@CLIENTE_DISTRITO", clienteInfo.Distrito); facturaSB.Replace("@CLIENTE_RUC", clienteInfo.NumeroDocumento); facturaSB.Replace("@CLIENTE_CODIGO", clienteInfo.Codigo); facturaSB.Replace("@MONEDA", ventaInfo.Moneda); var facturaSBDetalle = new StringBuilder(""); facturaSBDetalle.Append("<table style=\"width: 100%; border-collapse: collapse;\">"); facturaSBDetalle.Append(" <thead>"); facturaSBDetalle.Append(" <tr>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border-bottom: 1px solid #0b44e9; text-align: center;\" class=\"Estilo67\">ITEM</td>"); facturaSBDetalle.Append(" <td style=\"width: 50%; border-bottom: 1px solid #0b44e9; text-align: center;\" class=\"Estilo67\">DESCRIPCIÓN</td>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border-bottom: 1px solid #0b44e9; text-align: center;\" class=\"Estilo67\">CANT</td>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border-bottom: 1px solid #0b44e9; text-align: center;\" class=\"Estilo67\">UND</td>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border-bottom: 1px solid #0b44e9; text-align: center;\" class=\"Estilo67\">VALOR UNIT</td>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border-bottom: 1px solid #0b44e9; text-align: center;\" class=\"Estilo67\">SUBTOTAL</td>"); facturaSBDetalle.Append(" </tr>"); facturaSBDetalle.Append(" </thead>"); var montoGravado = 0M; var montoImpuestoTotal = 0M; foreach (var vd in ventaDetalleInfo) { facturaSBDetalle.Append(" <tr>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border: 1px none #0b44e9; text-align: center; vertical-align: top;\" class=\"Estilo8\">" + vd.Codigo + "</td>"); facturaSBDetalle.Append(" <td style=\"width: 50%; border: 1px none #0b44e9; text-align: left; vertical-align: top;\" class=\"Estilo8\">" + vd.Producto + "</td>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border: 1px none #0b44e9; text-align: center; vertical-align: top;\" class=\"Estilo8\">" + vd.Cantidad.ToString("N2") + "</td>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border: 1px none #0b44e9; text-align: center; vertical-align: top;\" class=\"Estilo8\">" + vd.UnidadMedida + "</td>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border: 1px none #0b44e9; text-align: center; vertical-align: top;\" class=\"Estilo8\">" + vd.PrecioUnitario.ToString("N2") + "</td>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border: 1px none #0b44e9; text-align: center; vertical-align: top;\" class=\"Estilo8\">" + vd.SubTotal.ToString("N2") + "</td>"); facturaSBDetalle.Append(" </tr>"); montoGravado = montoGravado + vd.SubTotal; } facturaSBDetalle.Append("</table>"); var montoIgv = montoGravado * 0.18M; var montoTotal = montoGravado + montoIgv; facturaSB.Replace("@MONTO_GRAVADA", montoGravado.ToString("N2")); facturaSB.Replace("@MONTO_INAFECTA", "0.00"); facturaSB.Replace("@MONTO_EXONERADA", "0.00"); facturaSB.Replace("@MONTO_GRATUITA", "0.00"); facturaSB.Replace("@MONTO_IGV", montoIgv.ToString("N2")); facturaSB.Replace("@MONTO_TOTAL", montoTotal.ToString("N2")); facturaSB.Replace("@PRODUCTO_DETALLE", facturaSBDetalle.ToString()); #region Generar XML _documento = new DocumentoElectronico(); #region Documento _documento.CalculoDetraccion = 0; _documento.CalculoIgv = Decimal.Divide(18, 100); _documento.CalculoIsc = 0; _documento.DescuentoGlobal = ventaInfo.Descuento; #region Emisor var emisor = new DocumentoElectronico().Emisor; emisor.Departamento = empresaInfo.Departamento; emisor.Direccion = empresaInfo.Direccion; emisor.Distrito = empresaInfo.Distrito; emisor.NombreComercial = empresaInfo.RazonSocial; emisor.NombreLegal = empresaInfo.RazonSocial; emisor.NroDocumento = "10421895452"; emisor.Provincia = empresaInfo.Provincia; emisor.TipoDocumento = empresaInfo.TipoDocumentoId.ToString(); emisor.Ubigeo = empresaInfo.Departamento; emisor.Urbanizacion = empresaInfo.Direccion; _documento.Emisor = emisor; #endregion _documento.Exoneradas = 0; _documento.FechaEmision = ventaInfo.FechaEmision.ToString("dd/MM/yyyy"); _documento.Gratuitas = 0; _documento.Gravadas = ventaInfo.MontoVenta; _documento.IdDocumento = ventaInfo.NumeroSerie + "-" + ventaInfo.NumeroComprobante; _documento.Inafectas = 0; #region Items var itemId = 1; foreach (var vd in ventaDetalleInfo) { var item = new DetalleDocumento(); item.Cantidad = vd.Cantidad; item.Descripcion = vd.Producto; item.Id = itemId; itemId++; item.Impuesto = vd.Igv; item.PrecioUnitario = vd.PrecioUnitario; item.Suma = vd.SubTotal; item.TotalVenta = vd.MontoTotal; item.UnidadMedida = vd.UnidadMedida; item.Descuento = 0; item.ImpuestoSelectivo = 0; item.OtroImpuesto = 0; item.PrecioReferencial = 0; item.TipoImpuesto = "10"; item.TipoPrecio = "01"; _documento.Items.Add(item); } #endregion _documento.Moneda = ventaInfo.MonedaId.Equals(Constantes.MonedaSoles) ? Constantes.MonedaSolesSunat : Constantes.MonedaDolaresSunat; _documento.MontoAnticipo = 0; _documento.MontoDetraccion = 0; _documento.MontoEnLetras = Herramientas.NumeroALetras.numeroAletras(ventaInfo.MontoVenta); _documento.MontoPercepcion = 0; #region Receptor var receptor = new DocumentoElectronico().Receptor; receptor.Departamento = clienteInfo.Departamento; receptor.Direccion = clienteInfo.Direccion; receptor.Distrito = clienteInfo.Distrito; receptor.NombreComercial = clienteInfo.RazonSocial; receptor.NombreLegal = clienteInfo.RazonSocial; receptor.NroDocumento = "10415787796"; receptor.Provincia = clienteInfo.Provincia; receptor.TipoDocumento = clienteInfo.TipoDocumentoId.ToString(); receptor.Ubigeo = clienteInfo.Departamento; receptor.Urbanizacion = clienteInfo.Direccion; _documento.Receptor = receptor; #endregion _documento.TipoDocumento = ventaInfo.TipoComprobanteId; _documento.TotalIgv = ventaInfo.MontoImpuesto; _documento.TotalIsc = 0; _documento.TotalOtrosTributos = 0; _documento.TotalVenta = ventaInfo.MontoTotal; #endregion string metodoApi; switch (_documento.TipoDocumento) { case "07": metodoApi = "api/GenerarNotaCredito"; break; case "08": metodoApi = "api/GenerarNotaDebito"; break; default: metodoApi = "api/GenerarFactura"; break; } #region Generando XML var client = new RestClient(BaseUrl); var requestInvoice = new RestRequest("GenerarFactura", Method.POST) { RequestFormat = DataFormat.Json }; requestInvoice.AddBody(_documento); var documentoResponse = client.Execute <DocumentoResponse>(requestInvoice); if (!documentoResponse.Data.Exito) { throw new ApplicationException(documentoResponse.Data.MensajeError); } //string rutaXml = HostingEnvironment.MapPath("~/Archivos/Facturacion/XML/" + _documento.IdDocumento + ".xml"); //File.WriteAllBytes(rutaXml, Convert.FromBase64String(documentoResponse.Data.TramaXmlSinFirma)); string rutaXml = HostingEnvironment.MapPath("~/Archivos/Facturacion/XML/Cliente/" + clienteInfo.NumeroDocumento); if (!Directory.Exists(rutaXml)) { Directory.CreateDirectory(rutaXml); } File.WriteAllBytes(rutaXml + "/" + _documento.IdDocumento + ".xml", Convert.FromBase64String(documentoResponse.Data.TramaXmlSinFirma)); #endregion #region Firma string rutaCertificado = HostingEnvironment.MapPath("~/Archivos/Facturacion/certificado.pfx"); var firmado = new FirmadoRequest { TramaXmlSinFirma = documentoResponse.Data.TramaXmlSinFirma, CertificadoDigital = Convert.ToBase64String(File.ReadAllBytes(rutaCertificado)), PasswordCertificado = "9dGxdmm5JHKwKsXc", UnSoloNodoExtension = false }; var requestFirma = new RestRequest("Firmar", Method.POST) { RequestFormat = DataFormat.Json }; requestFirma.AddBody(firmado); var responseFirma = client.Execute <FirmadoResponse>(requestFirma); if (!responseFirma.Data.Exito) { throw new ApplicationException(responseFirma.Data.MensajeError); } //string rutaXmlFirmado = HostingEnvironment.MapPath("~/Archivos/Facturacion/XML/" + _documento.IdDocumento + "_Firmado.xml"); //File.WriteAllBytes(rutaXmlFirmado, Convert.FromBase64String(responseFirma.Data.TramaXmlFirmado)); string rutaXmlFirmado = HostingEnvironment.MapPath("~/Archivos/Facturacion/XML/Cliente/" + clienteInfo.NumeroDocumento); if (!Directory.Exists(rutaXmlFirmado)) { Directory.CreateDirectory(rutaXmlFirmado); } File.WriteAllBytes(rutaXmlFirmado + "/" + _documento.IdDocumento + "_Firmado.xml", Convert.FromBase64String(responseFirma.Data.TramaXmlFirmado)); #endregion #endregion #region Codigo QR var codigoQR = ventaInfo.NumeroDocumento + "|" + ventaInfo.TipoComprobanteId + "|" + ventaInfo.NumeroSerie + "|" + ventaInfo.NumeroComprobante + "|" + ventaInfo.MontoImpuesto + "|" + ventaInfo.MontoTotal + "|" + ventaInfo.FechaEmision + "|" + clienteInfo.TipoDocumentoId + "|" + clienteInfo.NumeroDocumento + "|" + responseFirma.Data.ResumenFirma + "|" + responseFirma.Data.ValorFirma; // instantiate a writer object var barcodeWriter = new BarcodeWriter(); // set the barcode format barcodeWriter.Format = BarcodeFormat.PDF_417; // write text and generate a 2-D barcode as a bitmap // barcodeWriter.Write(codigoQR).Save(@"C:\Users\jeremy\Desktop\generated.bmp"); string rutaQr = HostingEnvironment.MapPath("~/Archivos/Documentos/Cliente/" + clienteInfo.NumeroDocumento); if (!Directory.Exists(rutaQr)) { Directory.CreateDirectory(rutaQr); } barcodeWriter.Write(codigoQR).Save(rutaQr + "/" + _documento.IdDocumento + ".bmp"); #endregion facturaSB.Replace("@CODIGO_QR", HttpContext.Current.Server.MapPath("~/Archivos/Documentos/Cliente/" + clienteInfo.NumeroDocumento + "/" + _documento.IdDocumento + ".bmp")); facturaSB.Replace("@MONTO_LETRAS", Herramientas.NumeroALetras.numeroAletras(montoTotal)); facturaSB = Herramientas.Helper.EncodeHtml(facturaSB); var htmlToPdfFactura = new NReco.PdfGenerator.HtmlToPdfConverter(); var pdfBytesFactura = htmlToPdfFactura.GeneratePdf(facturaSB.ToString()); string nombreArchivoFactura = String.Empty; if (ventaInfo.TipoComprobanteId.Equals(Constantes.TipoComprobanteFactura)) { nombreArchivoFactura = "Factura_" + fechaEmision.ToString("ddMMyyyyhhmmss") + ".pdf"; } if (ventaInfo.TipoComprobanteId.Equals(Constantes.TipoComprobanteBoletaVenta)) { nombreArchivoFactura = "Boleta_" + fechaEmision.ToString("ddMMyyyyhhmmss") + ".pdf"; } string pdfFactura = HostingEnvironment.MapPath("~/Archivos/Documentos/Cliente/" + clienteInfo.NumeroDocumento + ""); if (!Directory.Exists(pdfFactura)) { Directory.CreateDirectory(pdfFactura); } var comprobanteImpreso = pdfFactura + "\\" + nombreArchivoFactura; File.WriteAllBytes(comprobanteImpreso, pdfBytesFactura); Negocio.Helper.ActualizarColumnasTabla("Venta", new string[] { "ComprobanteImpreso" }, new string[] { nombreArchivoFactura }, new string[] { "VentaId" }, new string[] { ventaInfo.VentaId.ToString() }); #region Envío Correo var correos = clienteInfo.Correo.Replace(",", ";"); var correoArray = correos.Split(';').ToList(); var asunto = "APUFact: Factura Electrónica serie " + ventaInfo.NumeroSerie + " número " + ventaInfo.NumeroComprobante + " del " + ventaInfo.FechaEmision.ToString("dd/MM/yyyy") + " emitida por " + empresaInfo.RazonSocial + " para " + (clienteInfo.TipoPersonaId.Equals(Constantes.TipoPersonaNatural) ? (clienteInfo.Nombres + "," + clienteInfo.ApellidoPaterno + " " + clienteInfo.ApellidoMaterno) : clienteInfo.RazonSocial); Negocio.Email.Enviar(correoArray, correoArray, correoArray, asunto, "Se adjunta el comprobante.", comprobanteImpreso); #endregion mensaje = "El Comprobante se generó correctamente" + "@" + nombreArchivoFactura; } catch (Exception ex) { bool rethrow = ExceptionPolicy.HandleException(ex, Constantes.ExcepcionPoliticaPresentacion); mensaje = rethrow ? ex.Message : Constantes.ExcepcionPoliticaPresentacion; } return(mensaje); }
public void EnvioSunat() { try { var estadoProceso = Negocio.Helper.ObtenerValorParametro("ESTADO_SERVICIO_WINDOWS").ToString(); if (estadoProceso.Equals("P")) { return; } if (estadoProceso.Equals("N")) { Negocio.Helper.ActualizarColumnasTabla("ParametrosGlobales", new string[] { "ValorParametro" }, new string[] { "P" }, new string[] { "NombreParametro" }, new string[] { "ESTADO_SERVICIO_WINDOWS" }); var ventaPendienteListaInfo = new Venta().Listar(0).Where(v => v.Exito.Equals(0)).ToList(); foreach (var v in ventaPendienteListaInfo) { //var ventaId = 1; var ventaId = v.VentaId; var mensaje = String.Empty; //var usuarioInfo = ObtenerUsuarioInfo(); var usuarioInfo = new Usuario().Listar(1, "", "", "", 0, 0).FirstOrDefault(); var ventaInfo = new Venta().Listar(ventaId).FirstOrDefault(); var ventaDetalleInfo = new Venta().ListarDetalle(ventaId, 0); var empresaInfo = new Empresa().Listar(usuarioInfo.EmpresaId).FirstOrDefault(); var clienteInfo = new Cliente().Listar(ventaInfo.ClienteId).FirstOrDefault(); _documento = new DocumentoElectronico(); #region Documento _documento.CalculoDetraccion = 0; _documento.CalculoIgv = Decimal.Divide(18, 100); _documento.CalculoIsc = 0; _documento.DescuentoGlobal = ventaInfo.Descuento; // _documento.DocAnticipo = String.Empty; #region Emisor var emisor = new DocumentoElectronico().Emisor; emisor.Departamento = empresaInfo.Departamento; //emisor.Departamento = "LIMA"; emisor.Direccion = empresaInfo.Direccion; //emisor.Direccion = "LADERAS DE CHILLON"; emisor.Distrito = empresaInfo.Distrito; //emisor.Distrito = "PUENTE PIEDRA"; emisor.NombreComercial = empresaInfo.RazonSocial; emisor.NombreLegal = empresaInfo.RazonSocial; //emisor.NombreComercial = "ABARCA URBANO"; //emisor.NombreLegal = "MIGUEL ABARCA URBANO"; //emisor.NroDocumento = empresaInfo.NumeroDocumento; emisor.NroDocumento = "10421895452"; emisor.Provincia = empresaInfo.Provincia; //emisor.Provincia = "LIMA"; emisor.TipoDocumento = empresaInfo.TipoDocumentoId.ToString(); emisor.Ubigeo = empresaInfo.Departamento; emisor.Urbanizacion = empresaInfo.Direccion; //emisor.Urbanizacion = "LADERAS DE CHILLON"; _documento.Emisor = emisor; #endregion _documento.Exoneradas = 0; _documento.FechaEmision = ventaInfo.FechaEmision.ToString("dd/MM/yyyy"); //_documento.FechaEmision = "2017-11-27"; _documento.Gratuitas = 0; _documento.Gravadas = ventaInfo.MontoVenta; //_documento.Gravadas = 1000; _documento.IdDocumento = ventaInfo.NumeroSerie + "-" + ventaInfo.NumeroComprobante; _documento.Inafectas = 0; #region Items var itemId = 1; foreach (var vd in ventaDetalleInfo) { var item = new DetalleDocumento(); item.Cantidad = vd.Cantidad; // item.CodigoItem = vd.Codigo; item.Descripcion = vd.Producto; //item.Descuento = vd.Descuento; item.Id = itemId; itemId++; item.Impuesto = vd.Igv; //item.ImpuestoSelectivo = 0; //item.OtroImpuesto = 0; //item.PrecioReferencial = 0; item.PrecioUnitario = vd.PrecioUnitario; item.Suma = vd.SubTotal; //item.TipoImpuesto = "10"; //item.TipoPrecio = "01"; item.TotalVenta = vd.MontoTotal; item.UnidadMedida = vd.UnidadMedida; //item.CodigoItem = "A0001"; item.Descuento = 0; //item.Id = 1; item.ImpuestoSelectivo = 0; item.OtroImpuesto = 0; item.PrecioReferencial = 0; // item.PrecioUnitario = 50; item.TipoImpuesto = "10"; item.TipoPrecio = "01"; // item.UnidadMedida = "NIU"; _documento.Items.Add(item); } #endregion _documento.Moneda = ventaInfo.MonedaId.Equals(Constantes.MonedaSoles) ? Constantes.MonedaSolesSunat : Constantes.MonedaDolaresSunat; // _documento.MonedaAnticipo = 0.18; _documento.MontoAnticipo = 0; _documento.MontoDetraccion = 0; _documento.MontoEnLetras = Herramientas.NumeroALetras.numeroAletras(ventaInfo.MontoVenta); //_documento.MontoEnLetras = "MIL"; _documento.MontoPercepcion = 0; // _documento.PlacaVehiculo = ventaInfo.Placa; #region Receptor var receptor = new DocumentoElectronico().Receptor; receptor.Departamento = clienteInfo.Departamento; receptor.Direccion = clienteInfo.Direccion; receptor.Distrito = clienteInfo.Distrito; receptor.NombreComercial = clienteInfo.RazonSocial; receptor.NombreLegal = clienteInfo.RazonSocial; //receptor.NombreComercial = "RENE ABARCA URBANO"; //receptor.NombreLegal = "RENE ABARCA URBANO"; //receptor.NroDocumento = clienteInfo.NumeroDocumento; receptor.NroDocumento = "10415787796"; receptor.Provincia = clienteInfo.Provincia; receptor.TipoDocumento = clienteInfo.TipoDocumentoId.ToString(); receptor.Ubigeo = clienteInfo.Departamento; receptor.Urbanizacion = clienteInfo.Direccion; _documento.Receptor = receptor; #endregion // _documento.TipoDocAnticipo = 0; _documento.TipoDocumento = ventaInfo.TipoComprobanteId; // _documento.TipoOperacion = ventaInfo.TipoOperacionId; _documento.TotalIgv = ventaInfo.MontoImpuesto; //_documento.TotalIgv = 180; _documento.TotalIsc = 0; _documento.TotalOtrosTributos = 0; _documento.TotalVenta = ventaInfo.MontoTotal; //_documento.TotalVenta = 1180; #endregion //var proxy = new HttpClient { BaseAddress = new Uri(ConfigurationManager.AppSettings["UrlOpenInvoicePeruApi"]) }; string metodoApi; switch (_documento.TipoDocumento) { case "07": metodoApi = "api/GenerarNotaCredito"; break; case "08": metodoApi = "api/GenerarNotaDebito"; break; default: metodoApi = "api/GenerarFactura"; break; } //var response = await proxy.PostAsJsonAsync(metodoApi, _documento); //var respuesta = await response.Content.ReadAsAsync<DocumentoResponse>(); #region Generando XML var client = new RestClient(BaseUrl); var requestInvoice = new RestRequest("GenerarFactura", Method.POST) { RequestFormat = DataFormat.Json }; requestInvoice.AddBody(_documento); var documentoResponse = client.Execute <DocumentoResponse>(requestInvoice); if (!documentoResponse.Data.Exito) { throw new ApplicationException(documentoResponse.Data.MensajeError); } //string rutaXml = HostingEnvironment.MapPath("~/Archivos/Facturacion/XML/" + _documento.IdDocumento + ".xml"); string rutaXml = @"D:\ASOLUTIONS\APU\APU.Presentacion\Archivos\Facturacion\XML\" + _documento.IdDocumento + ".xml"; File.WriteAllBytes(rutaXml, Convert.FromBase64String(documentoResponse.Data.TramaXmlSinFirma)); #endregion #region Firma //string rutaCertificado = HostingEnvironment.MapPath("~/Archivos/Facturacion/certificado.pfx"); var rutaCertificado = @"D:\ASOLUTIONS\APU\APU.Presentacion\certificado.pfx"; var firmado = new FirmadoRequest { TramaXmlSinFirma = documentoResponse.Data.TramaXmlSinFirma, //CertificadoDigital = Convert.ToBase64String(File.ReadAllBytes("certificado.pfx")), CertificadoDigital = Convert.ToBase64String(File.ReadAllBytes(rutaCertificado)), PasswordCertificado = string.Empty, UnSoloNodoExtension = false }; var requestFirma = new RestRequest("Firmar", Method.POST) { RequestFormat = DataFormat.Json }; requestFirma.AddBody(firmado); var responseFirma = client.Execute <FirmadoResponse>(requestFirma); if (!responseFirma.Data.Exito) { throw new ApplicationException(responseFirma.Data.MensajeError); } //string rutaXmlFirmado = HostingEnvironment.MapPath("~/Archivos/Facturacion/XML/" + _documento.IdDocumento + "_Firmado.xml"); string rutaXmlFirmado = @"D:\ASOLUTIONS\APU\APU.Presentacion\Archivos\Facturacion\XML\" + _documento.IdDocumento + "_Firmado.xml"; File.WriteAllBytes(rutaXmlFirmado, Convert.FromBase64String(responseFirma.Data.TramaXmlFirmado)); #endregion #region Envio SUNAT var sendBill = new EnviarDocumentoRequest { //Ruc = _documento.Emisor.NroDocumento, Ruc = "10421895452", //UsuarioSol = "MODDATOS", UsuarioSol = "MMINSIOT", //ClaveSol = "MODDATOS", ClaveSol = "saywalcod", EndPointUrl = UrlSunat, IdDocumento = _documento.IdDocumento, TipoDocumento = _documento.TipoDocumento, TramaXmlFirmado = responseFirma.Data.TramaXmlFirmado }; var requestSendBill = new RestRequest("EnviarDocumento", Method.POST) { RequestFormat = DataFormat.Json }; requestSendBill.AddBody(sendBill); var responseSendBill = client.Execute <EnviarDocumentoResponse>(requestSendBill); if (!responseSendBill.Data.Exito) { // throw new ApplicationException(responseSendBill.Data.MensajeError); } else { //string rutaCdr = HostingEnvironment.MapPath("~/Archivos/Facturacion/CDR/" + responseSendBill.Data.NombreArchivo + ".zip"); string rutaCdr = @"D:\ASOLUTIONS\APU\APU.Presentacion\Archivos\Facturacion\CDR\" + responseSendBill.Data.NombreArchivo + ".zip"; File.WriteAllBytes(rutaCdr, Convert.FromBase64String(responseSendBill.Data.TramaZipCdr)); } //Console.WriteLine("Respuesta de SUNAT:"); //Console.WriteLine(responseSendBill.Data.MensajeRespuesta); var data = responseSendBill.Data; mensaje = data.Exito ? data.MensajeRespuesta : data.MensajeError; var ventaSunatInfo = new VentaSunatInfo(); ventaSunatInfo.VentaId = ventaId; ventaSunatInfo.CodigoRespuesta = (data.CodigoRespuesta == null) ? String.Empty : data.CodigoRespuesta; ventaSunatInfo.Exito = data.Exito ? 1 : 0; ventaSunatInfo.MensajeError = (data.MensajeError == null) ? String.Empty : data.MensajeError; ventaSunatInfo.MensajeRespuesta = (data.MensajeRespuesta == null) ? String.Empty : data.MensajeRespuesta; ventaSunatInfo.NombreArchivo = (data.NombreArchivo == null) ? String.Empty : data.NombreArchivo; ventaSunatInfo.Pila = (data.Pila == null) ? String.Empty : data.Pila; ventaSunatInfo.TramaZipCdr = (data.TramaZipCdr == null) ? String.Empty : data.TramaZipCdr; ventaSunatInfo.UsuarioCreacionId = usuarioInfo.UsuarioId; new VentaSunat().Insertar(ventaSunatInfo); #endregion } } } catch (Exception ex) { // Console.WriteLine(e); System.Diagnostics.EventLog.WriteEntry("MyEventSource", ex.StackTrace, System.Diagnostics.EventLogEntryType.Warning); } }
private void btnAgregar_Click(object sender, EventArgs e) { try { Cursor.Current = Cursors.WaitCursor; switch (tbPaginas.SelectedIndex) { case 0: var detalle = new DetalleDocumento(); using (var frm = new FrmDetalleDocumento(detalle, _documento)) { if (frm.ShowDialog(this) != DialogResult.OK) { return; } _documento.Items.Add(detalle); CalcularTotales(); } break; case 1: var datoAdicional = new DatoAdicional(); using (var frm = new FrmDatosAdicionales(datoAdicional)) { if (frm.ShowDialog(this) != DialogResult.OK) { return; } _documento.DatoAdicionales.Add(datoAdicional); } break; case 2: var documentoRelacionado = new DocumentoRelacionado(); using (var frm = new FrmDocumentoRelacionado(documentoRelacionado)) { if (frm.ShowDialog(this) != DialogResult.OK) { return; } _documento.Relacionados.Add(documentoRelacionado); } break; case 3: var discrepancia = new Discrepancia(); using (var frm = new FrmDiscrepancia(discrepancia, _documento.TipoDocumento)) { if (frm.ShowDialog(this) != DialogResult.OK) { return; } _documento.Discrepancias.Add(discrepancia); } break; } } catch (Exception ex) { MessageBox.Show(ex.Message, Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } finally { documentoElectronicoBindingSource.ResetBindings(false); Cursor.Current = Cursors.Default; } }
public static DetalleDocumento DetalleItem(DataTable DtArticulos, int i) { decimal vPrecioUnitario; try { if (Convert.ToDecimal(DtArticulos.Rows[i]["Productocantidad"]) == 0) { vPrecioUnitario = Convert.ToDecimal(DtArticulos.Rows[i]["Preciovta"]); } else { vPrecioUnitario = Convert.ToDecimal(DtArticulos.Rows[i]["Preciovta"]); } string vDescripcion = ""; if (Convert.ToString(DtArticulos.Rows[i]["Productodescripcion"]) != "") { vDescripcion = Convert.ToString(DtArticulos.Rows[i]["Productodescripcion"]); } else { vDescripcion = "DIESEL B5"; } DetalleDocumento detalle = new DetalleDocumento(); detalle.Id = Convert.ToInt32(i + 1); detalle.Cantidad = Convert.ToDecimal(DtArticulos.Rows[i]["Productocantidad"]); detalle.PrecioReferencial = vPrecioUnitario; detalle.PrecioUnitario = vPrecioUnitario; detalle.TipoPrecio = Convert.ToString(DtArticulos.Rows[i]["TipodePrecioID"]); detalle.CodigoItem = Convert.ToString(DtArticulos.Rows[i]["ProductoID"]); detalle.Descripcion = vDescripcion; detalle.UnidadMedida = "NIU"; detalle.Impuesto = Convert.ToDecimal(DtArticulos.Rows[i]["ItemIgv"]); detalle.TipoImpuesto = Convert.ToString(DtArticulos.Rows[i]["TipodeImpuestoID"]); detalle.ImpuestoSelectivo = Convert.ToDecimal(DtArticulos.Rows[i]["itemIsc"]); detalle.OtroImpuesto = 0; detalle.ItemGravado = Convert.ToDecimal(DtArticulos.Rows[i]["ItemGravado"]); detalle.ItemInafecto = Convert.ToDecimal(DtArticulos.Rows[i]["ItemInafecto"]); detalle.ItemExonerado = Convert.ToDecimal(DtArticulos.Rows[i]["ItemExonerado"]); detalle.ItemVenta = Convert.ToDecimal(DtArticulos.Rows[i]["ItemVenta"]); detalle.ItemSuma = Convert.ToDecimal(DtArticulos.Rows[i]["ItemVenta"]); string vNombre = Convert.ToString(DtArticulos.Rows[i]["nombre"]); string vNemoTecnico = Convert.ToString(DtArticulos.Rows[i]["Nemotecnico"]); string vCodigo = Convert.ToString(DtArticulos.Rows[i]["codigo"]); string vId = Convert.ToString(DtArticulos.Rows[i]["AfectacionIgv"]); detalle.AfectacionIgv = new AfectacionIgv { Nemotecnico = vNemoTecnico, Nombre = vNombre, Codigo = vCodigo, Id = vId }; return(detalle); } catch (Exception ex) { MessageBox.Show(ex.Message); return(null); } }
//public static string EnviarSunat(int ventaId) public static EnviarDocumentoResponse EnviarSunat(int ventaId) { var mensaje = String.Empty; var usuarioInfo = ObtenerUsuarioInfo(); var ventaInfo = new Negocio.Venta().Listar(ventaId).FirstOrDefault(); var ventaDetalleInfo = new Negocio.Venta().ListarDetalle(ventaId, 0); var empresaInfo = new Empresa().Listar(usuarioInfo.EmpresaId).FirstOrDefault(); var clienteInfo = new Cliente().Listar(ventaInfo.ClienteId).FirstOrDefault(); _documento = new DocumentoElectronico(); #region Documento _documento.CalculoDetraccion = 0; _documento.CalculoIgv = Decimal.Divide(18, 100); _documento.CalculoIsc = 0; _documento.DescuentoGlobal = ventaInfo.Descuento; #region Emisor var emisor = new DocumentoElectronico().Emisor; emisor.Departamento = empresaInfo.Departamento; emisor.Direccion = empresaInfo.Direccion; emisor.Distrito = empresaInfo.Distrito; emisor.NombreComercial = empresaInfo.RazonSocial; emisor.NombreLegal = empresaInfo.RazonSocial; emisor.NroDocumento = "10421895452"; emisor.Provincia = empresaInfo.Provincia; emisor.TipoDocumento = empresaInfo.TipoDocumentoId.ToString(); emisor.Ubigeo = empresaInfo.Departamento; emisor.Urbanizacion = empresaInfo.Direccion; _documento.Emisor = emisor; #endregion _documento.Exoneradas = 0; _documento.FechaEmision = ventaInfo.FechaEmision.ToString("dd/MM/yyyy"); _documento.Gratuitas = 0; _documento.Gravadas = ventaInfo.MontoVenta; _documento.IdDocumento = ventaInfo.NumeroSerie + "-" + ventaInfo.NumeroComprobante; _documento.Inafectas = 0; #region Items var itemId = 1; foreach (var vd in ventaDetalleInfo) { var item = new DetalleDocumento(); item.Cantidad = vd.Cantidad; item.Descripcion = vd.Producto; item.Id = itemId; itemId++; item.Impuesto = vd.Igv; item.PrecioUnitario = vd.PrecioUnitario; item.Suma = vd.SubTotal; item.TotalVenta = vd.MontoTotal; item.UnidadMedida = vd.UnidadMedida; item.Descuento = 0; item.ImpuestoSelectivo = 0; item.OtroImpuesto = 0; item.PrecioReferencial = 0; item.TipoImpuesto = "10"; item.TipoPrecio = "01"; _documento.Items.Add(item); } #endregion _documento.Moneda = ventaInfo.MonedaId.Equals(Constantes.MonedaSoles) ? Constantes.MonedaSolesSunat : Constantes.MonedaDolaresSunat; _documento.MontoAnticipo = 0; _documento.MontoDetraccion = 0; _documento.MontoEnLetras = Herramientas.NumeroALetras.numeroAletras(ventaInfo.MontoVenta); _documento.MontoPercepcion = 0; // _documento.PlacaVehiculo = ventaInfo.Placa; #region Receptor var receptor = new DocumentoElectronico().Receptor; receptor.Departamento = clienteInfo.Departamento; receptor.Direccion = clienteInfo.Direccion; receptor.Distrito = clienteInfo.Distrito; receptor.NombreComercial = clienteInfo.RazonSocial; receptor.NombreLegal = clienteInfo.RazonSocial; receptor.NroDocumento = clienteInfo.NumeroDocumento; receptor.Provincia = clienteInfo.Provincia; receptor.TipoDocumento = clienteInfo.TipoDocumentoId.ToString(); receptor.Ubigeo = clienteInfo.Departamento; receptor.Urbanizacion = clienteInfo.Direccion; _documento.Receptor = receptor; #endregion _documento.TipoDocumento = ventaInfo.TipoComprobanteId; _documento.TotalIgv = ventaInfo.MontoImpuesto; _documento.TotalIsc = 0; _documento.TotalOtrosTributos = 0; _documento.TotalVenta = ventaInfo.MontoTotal; #endregion string metodoApi; switch (_documento.TipoDocumento) { case "07": metodoApi = "api/GenerarNotaCredito"; break; case "08": metodoApi = "api/GenerarNotaDebito"; break; default: metodoApi = "api/GenerarFactura"; break; } #region Generando XML var client = new RestClient(BaseUrl); var requestInvoice = new RestRequest("GenerarFactura", Method.POST) { RequestFormat = DataFormat.Json }; requestInvoice.AddBody(_documento); var documentoResponse = client.Execute <DocumentoResponse>(requestInvoice); if (!documentoResponse.Data.Exito) { throw new ApplicationException(documentoResponse.Data.MensajeError); } //string rutaXml = HostingEnvironment.MapPath("~/Archivos/Facturacion/XML/" + _documento.IdDocumento + ".xml"); //File.WriteAllBytes(rutaXml, Convert.FromBase64String(documentoResponse.Data.TramaXmlSinFirma)); string rutaXml = HostingEnvironment.MapPath("~/Archivos/Facturacion/XML/Cliente/" + clienteInfo.NumeroDocumento); if (!Directory.Exists(rutaXml)) { Directory.CreateDirectory(rutaXml); } File.WriteAllBytes(rutaXml + "/" + _documento.IdDocumento + ".xml", Convert.FromBase64String(documentoResponse.Data.TramaXmlSinFirma)); #endregion #region Firma string rutaCertificado = HostingEnvironment.MapPath("~/Archivos/Facturacion/certificado.pfx"); var firmado = new FirmadoRequest { TramaXmlSinFirma = documentoResponse.Data.TramaXmlSinFirma, CertificadoDigital = Convert.ToBase64String(File.ReadAllBytes(rutaCertificado)), PasswordCertificado = "9dGxdmm5JHKwKsXc", UnSoloNodoExtension = false }; var requestFirma = new RestRequest("Firmar", Method.POST) { RequestFormat = DataFormat.Json }; requestFirma.AddBody(firmado); var responseFirma = client.Execute <FirmadoResponse>(requestFirma); if (!responseFirma.Data.Exito) { throw new ApplicationException(responseFirma.Data.MensajeError); } //string rutaXmlFirmado = HostingEnvironment.MapPath("~/Archivos/Facturacion/XML/" + _documento.IdDocumento + "_Firmado.xml"); //File.WriteAllBytes(rutaXmlFirmado, Convert.FromBase64String(responseFirma.Data.TramaXmlFirmado)); string rutaXmlFirmado = HostingEnvironment.MapPath("~/Archivos/Facturacion/XML/Cliente/" + clienteInfo.NumeroDocumento); if (!Directory.Exists(rutaXmlFirmado)) { Directory.CreateDirectory(rutaXmlFirmado); } File.WriteAllBytes(rutaXmlFirmado + "/" + _documento.IdDocumento + "_Firmado.xml", Convert.FromBase64String(responseFirma.Data.TramaXmlFirmado)); #endregion #region Envio SUNAT var sendBill = new EnviarDocumentoRequest { Ruc = _documento.Emisor.NroDocumento, UsuarioSol = "FACTRC18", ClaveSol = "rcfact2018", EndPointUrl = UrlSunat, IdDocumento = _documento.IdDocumento, TipoDocumento = _documento.TipoDocumento, TramaXmlFirmado = responseFirma.Data.TramaXmlFirmado }; var requestSendBill = new RestRequest("EnviarDocumento", Method.POST) { RequestFormat = DataFormat.Json }; requestSendBill.AddBody(sendBill); var responseSendBill = client.Execute <EnviarDocumentoResponse>(requestSendBill); if (!responseSendBill.Data.Exito) { // throw new ApplicationException(responseSendBill.Data.MensajeError); } else { string rutaCdr = HostingEnvironment.MapPath("~/Archivos/Facturacion/CDR/" + responseSendBill.Data.NombreArchivo + ".zip"); File.WriteAllBytes(rutaCdr, Convert.FromBase64String(responseSendBill.Data.TramaZipCdr)); } var data = responseSendBill.Data; mensaje = data.Exito ? data.MensajeRespuesta : data.MensajeError; var ventaSunatInfo = new VentaSunatInfo(); ventaSunatInfo.VentaId = ventaId; ventaSunatInfo.CodigoRespuesta = (data.CodigoRespuesta == null) ? String.Empty : data.CodigoRespuesta; ventaSunatInfo.Exito = data.Exito ? 1 : 0; ventaSunatInfo.MensajeError = (data.MensajeError == null)?String.Empty : data.MensajeError; ventaSunatInfo.MensajeRespuesta = (data.MensajeRespuesta == null) ? String.Empty : data.MensajeRespuesta; ventaSunatInfo.NombreArchivo = (data.NombreArchivo == null) ? String.Empty : data.NombreArchivo; ventaSunatInfo.Pila = (data.Pila == null) ? String.Empty : data.Pila; ventaSunatInfo.TramaZipCdr = (data.TramaZipCdr == null) ? String.Empty : data.TramaZipCdr; ventaSunatInfo.UsuarioCreacionId = usuarioInfo.UsuarioId; new Negocio.VentaSunat().Insertar(ventaSunatInfo); #endregion return(data); }
public ActionResult Detalles(DetalleView DetalleView, string id) { string aux = ""; string[] ID = id.Split(new char[] { ',' }); var DCM = new List <DetalleMesasCliente>(); using (var transacion = db.Database.BeginTransaction()) { try { for (int i = 0; i < ID.Length; i++) { if (ID[i] != "") { DCM.Add(db.DetalleMesasCliente.Find(Convert.ToInt32(ID[i]))); } } decimal valor = 0; foreach (var item in DCM) { int x = 0; valor = valor + (item.Cantidad_DMC * item.Menu.Valor_Menu); string[] s = aux.Split(new char[] { ',' }); for (int i = 0; i < s.Length; i++) { if (s[i] != "") { x = 0; if (Convert.ToInt32(s[i]) == item.Cod_MesasO) { x++; } } } if (x == 0) { aux = aux + "," + item.Cod_MesasO; } } int consecutivo = Consecutivo.Numero(db); var D = new Documento { Cod_Cli = DCM.FirstOrDefault().Cod_Cli, Cod_TDoc = 1, Estado_Doc = true, Fecha_Doc = DCM.FirstOrDefault().MesasOcupadas.Fecha_MesasO, HoraIngreso_Doc = DCM.FirstOrDefault().MesasOcupadas.HoraIngreso_MesasO, HoraSalida_Doc = hora, NConfirmacion_Doc = DCM.FirstOrDefault().NConfirmacion_DMC, Valor_Doc = valor, Consecutivo = consecutivo }; db.Documento.Add(D); db.SaveChanges(); int idD = db.Documento.Where(t => (t.NConfirmacion_Doc == D.NConfirmacion_Doc) && (t.HoraSalida_Doc == D.HoraSalida_Doc) && (t.Id_Doc == D.Id_Doc)).Max(x => x.Id_Doc); foreach (var item in DCM) { var DC = new DetalleDocumento { Id_DMC = item.Id_DMC, Id_Doc = idD }; var ADMC = db.DetalleMesasCliente.Find(item.Id_DMC); ADMC.Estado_DMC = false; ADMC.MesasOcupadas.Estado_MesasO = false; ADMC.MesasOcupadas.Llegada_MesasO = false; db.Entry(ADMC).State = EntityState.Modified; db.DetalleDocumento.Add(DC); } db.SaveChanges(); transacion.Commit(); var edetalles = new EDetalles { D = 0, IdC = DCM.FirstOrDefault().Cod_Cli, IdMesaO = DCM.FirstOrDefault().Cod_MesasO, IdM = DCM.FirstOrDefault().MesasOcupadas.Cod_Mesa, NC = DCM.FirstOrDefault().NConfirmacion_DMC, F = true, Add = aux }; return(RedirectToAction("Detalles", edetalles)); } catch (Exception ex) { ModelState.AddModelError(string.Empty, ex.Message); transacion.Rollback(); throw; } } //return View(); }