public ResponseFactura ProcesarFactura(List <mod.Factura> facturas) { mod.ResponseFactura responseFactura = new ResponseFactura(); try { if (facturas.Count > 0) { facturas.ForEach(itemfactura => { itemfactura.Mensaje = Validar(itemfactura); itemfactura.ValorIva = itemfactura.ValorTotal * (itemfactura.ValorIva / 100); }); if (facturas.Where(x => x.Mensaje != string.Empty).Count() > 0) { responseFactura.Facturas = facturas; throw new System.Exception("Las facturas presentaron algunos errores por favor rebice cada item detalladamente"); } else { responseFactura.Facturas = facturas; responseFactura.TotalIva = facturas.Sum(x => x.ValorIva); responseFactura.TotalFacturas = facturas.Sum(x => x.ValorTotal); } } else { throw new System.Exception("No hay facturas por procesar"); } } catch (System.Exception ex) { responseFactura.Mensaje = ex.Message; return(responseFactura); } return(responseFactura); }
public ResponseFactura SimulacionFEEL(RequestFactura request) { // Thread.Sleep(500); request.Factura.Cabecera.CUF = "CUFprueba"; ResponseFactura response = new ResponseFactura() { Factura = request.Factura, Proceso = new Proceso() { CodEstado = "123", CodigoTipoFactura = (int)request.Factura.Tipo, CUFD = "CUFDPRUEBA", IdDocFiscalERP = request.IdDocFiscalERP, IdDocFiscalFEEL = request.IdDocFiscalERP }, Respuesta = new Respuesta() { CodRespuesta = "0", TxtRespuesta = "Exito" } }; return(response); }
public void CambiarJsonNAMEprop() { Factura f1 = new FacturaEstandar() { Cabecera = new CabeceraFacturaEstandar() { NumeroFactura = 102, Direccion = "GV", FechaEmision = "20190116180000", CodigoTipoDocumentoIdentidad = "3", CUF = null, NumeroDocumento = "5642111", Complemento = null, CodigoSucursal = 1, CodigoPuntoVenta = 123, NombreRazonSocial = "Juan Perez", MontoTotal = 50.5m, MontoDescuento = 0, CodigoCliente = "55421", CodigoDocumentoSector = 1, NITEmisor = 305080026, CodigoMetodoPago = 1, NumeroTarjeta = 414, Leyenda = "Ley No 453: ", Usuario = "FTL", CodigoMoneda = 1, MontoTotalMoneda = 50.5m, TipoCambio = 6.96m }, //ListaDetalle= new List<Detalle>() }; ((FacturaEstandar)f1).ListaDetalle.Add( new DetalleFacturaEstandar() { ActividadEconomica = 123123, CodigoProductoSIN = 123, CodigoProducto = 123, Descripcion = "coca cola 1 litro", Cantidad = 5, PrecioUnitario = 10.1m, MontoDescuentoDetalle = 0, SubTotal = 50.5m, NumeroSerie = "ABC345", UnidadMedida = "botella" }); Factura f2 = new FacturaAlquiler() { Cabecera = new CabeceraFacturaAlquiler() { NumeroFactura = 102, Direccion = "GV", FechaEmision = "20190116180000", CodigoTipoDocumentoIdentidad = "3", CUF = null, NumeroDocumento = "5642111", Complemento = null, CodigoSucursal = 1, CodigoPuntoVenta = 123, NombreRazonSocial = "Juan Perez", MontoTotal = 50.5m, MontoDescuento = 0, CodigoCliente = "55421", CodigoDocumentoSector = 1, NITEmisor = 305080026, CodigoMetodoPago = 1, PeriodoFacturado = "string", Leyenda = "Ley No 453: ", Usuario = "FTL", CodigoMoneda = 1, MontoTotalMoneda = 50.5m, TipoCambio = 6.96m }, //ListaDetalle = new List<Detalle>() }; f2.ListaDetalle.Add( new Detalle() { ActividadEconomica = 123123, CodigoProductoSIN = 123, CodigoProducto = 123, Descripcion = "coca cola 1 litro", MontoDescuentoDetalle = 0, SubTotal = 50.5m, UnidadMedida = "botella" }); string r1 = @"{ ""respuesta"": null, ""proceso"":null, ""facturaEstandar"": " + f1.ToString() + "}"; string r2 = @"{ ""respuesta"": null, ""proceso"": null, ""facturaAlquiler"": " + f2.ToString() + "}"; string r3 = @"{ ""respuesta"": null, ""proceso"": null, ""fac"": null }"; string r4 = @"{ ""respuesta"": { ""codRespuesta"": ""0"", ""txtRespuesta"": ""Exito"" }, ""proceso"": { ""idDocFiscalFEEL"": 11, ""cufd"": ""42bf9913ec06745b7f3c5cc62b32a59e"", ""codEstado"": ""D1"", ""idDocFiscalERP"": ""3"", ""codigoTipoFactura"": 1 }, ""facturaEstandar"": { ""cabecera"": { ""numeroFactura"": 3, ""direccion"": ""Gualberto villarroel 123"", ""fechaEmision"": 20190101180000, ""codigoTipoDocumentoIdentidad"": 1, ""cuf"": ""B41ECAD147A6BE9D2AD905278126E6FB4B88B3E3"", ""numeroDocumento"": ""5642111"", ""complemento"": """", ""codigoSucursal"": 0, ""nombreRazonSocial"": ""Juan Perez"", ""montoTotal"": 50.5, ""codigoCliente"": ""55421"", ""codigoDocumentoSector"": 1, ""nitEmisor"": 1028305029, ""codigoMetodoPago"": 1, ""leyenda"": ""Ley N° 453: Los medios de comunicación deben promover el respeto de los derechos de los usuarios y consumidores."", ""usuario"": ""FTL"", ""codigoMoneda"": 1, ""montoTotalMoneda"": 50.5, ""tipoCambio"": 6.97, ""numeroTarjeta"": 54321 }, ""detalle"": [ { ""actividadEconomica"": 123123, ""codigoProductoSin"": 123, ""codigoProducto"": ""123"", ""descripcion"": ""coca cola 1 litro"", ""cantidad"": 5, ""precioUnitario"": 10, ""subTotal"": 10, ""numeroSerie"": ""1234567ADC"", ""unidadMedida"": ""botella"" }, { ""actividadEconomica"": 123123, ""codigoProductoSin"": 123, ""codigoProducto"": ""123"", ""descripcion"": ""Fanta 1 litro"", ""cantidad"": 5, ""precioUnitario"": 10, ""subTotal"": 10, ""numeroSerie"": ""1234567ADC"", ""unidadMedida"": ""botella"" } ] } }"; string r5 = @"{ ""respuesta"": { ""codRespuesta"": ""1200"", ""txtRespuesta"": ""Error la facturaEstandar ya se encuentra registrada numeroFactura :3"" } }"; RequestFactura reqq = new RequestFactura() { CodigoTipoFactura = 1, Contingencia = false, Cufd = "42bf9913ec06745b7f3c5cc62b32a59e", EsLote = false, IdDocFiscalERP = "3", IdLoteERP = "", UltFacturaLote = false, Factura = f1 }; Debug.WriteLine(reqq); Debug.WriteLine(JObject.FromObject(reqq).ToString()); ResponseFactura resp4 = new ResponseFactura(r4); Debug.WriteLine(resp4); Debug.WriteLine(((CabeceraFacturaEstandar)resp4.Factura.Cabecera).NumeroTarjeta); ResponseFactura resp5 = new ResponseFactura(r5); Debug.WriteLine(resp5); //ResponseFactura resp1 = JsonConvert.DeserializeObject<ResponseFactura>(r1, HelperJson.AdaptarResponseFactura(r1)); //ResponseFactura resp2 = JsonConvert.DeserializeObject<ResponseFactura>(r2, HelperJson.AdaptarResponseFactura(r2)); ////RequestFactura req3 = JsonConvert.DeserializeObject<RequestFactura>(r3, HelperJson.AdaptarResponseFactura(r3)); //Debug.WriteLine(resp1.Factura.GetType().ToString()); //Debug.WriteLine(resp2.Factura.GetType().ToString()); //Debug.WriteLine((FacturaEstandar)resp1.Factura); //Debug.WriteLine((FacturaAlquiler)resp2.Factura); }
private void GuardarResponseFactura(ResponseFactura response) { StringBuilder sql = new StringBuilder("UPDATE fehfe SET "); List <DBAxon.Parameters> parametros = new List <DBAxon.Parameters>(); //Respuesta sql.Append("fehfecres=?, fehfetres=?, "); parametros.Add(new DBAxon.Parameters("cres", response.Respuesta.CodRespuesta, ParameterDirection.Input, DbType.String, 10)); parametros.Add(new DBAxon.Parameters("tres", response.Respuesta.TxtRespuesta, ParameterDirection.Input, DbType.String, 200)); //Proceso sql.Append("fehfeifee = ?, fehfecufd = ?, fehfecsta = ?, fehfectip = ?, "); parametros.Add(new DBAxon.Parameters("ifee", response.Proceso.IdDocFiscalFEEL, ParameterDirection.Input, DbType.String, 20)); parametros.Add(new DBAxon.Parameters("cufd", response.Proceso.CUFD, ParameterDirection.Input, DbType.String, 100)); parametros.Add(new DBAxon.Parameters("csta", response.Proceso.CodEstado, ParameterDirection.Input, DbType.String, 10)); parametros.Add(new DBAxon.Parameters("ctip", response.Proceso.CodigoTipoFactura, ParameterDirection.Input, DbType.Int32)); //Factura - Cabecera sql.Append("fehfefemi=?, fehfectdi=?, fehfeccuf=?, fehfecsuc=?, fehfecpve=?, fehfecdse=?, fehfecmpa=?, fehfeleye=?, fehfecmon=? , fehfestat=" + EstadoDocumentoFiscal.E102_ProcesadaCorrectamente.ToString() + " "); parametros.Add(new DBAxon.Parameters("femi", response.Factura.Cabecera.FechaEmision, ParameterDirection.Input, DbType.String, 20)); parametros.Add(new DBAxon.Parameters("ctdi", response.Factura.Cabecera.CodigoTipoDocumentoIdentidad, ParameterDirection.Input, DbType.Int32)); parametros.Add(new DBAxon.Parameters("ccuf", response.Factura.Cabecera.CUF, ParameterDirection.Input, DbType.String, 50)); parametros.Add(new DBAxon.Parameters("csuc", response.Factura.Cabecera.CodigoSucursal, ParameterDirection.Input, DbType.Int32)); parametros.Add(new DBAxon.Parameters("cpve", response.Factura.Cabecera.CodigoPuntoVenta, ParameterDirection.Input, DbType.Int32)); parametros.Add(new DBAxon.Parameters("cdse", response.Factura.Cabecera.CodigoDocumentoSector, ParameterDirection.Input, DbType.Int32)); parametros.Add(new DBAxon.Parameters("cmpa", response.Factura.Cabecera.CodigoMetodoPago, ParameterDirection.Input, DbType.Int16)); parametros.Add(new DBAxon.Parameters("leye", response.Factura.Cabecera.Leyenda, ParameterDirection.Input, DbType.String, 200)); parametros.Add(new DBAxon.Parameters("cmon", response.Factura.Cabecera.CodigoMoneda, ParameterDirection.Input, DbType.Int32)); sql.Append(" WHERE fehfeiddf= ?;"); parametros.Add(new DBAxon.Parameters("iddf", response.Proceso.IdDocFiscalERP, ParameterDirection.Input, DbType.Int32)); //Factura - ListaDetalle dynamic factura = Convert.ChangeType(response.Factura, response.Factura.GetType()); //sql.Append("UPDATE fedfe SET "); if (factura.Tipo != TipoFactura.notaExportacion) { foreach (var detalle in factura.ListaDetalle) { sql.Append("UPDATE fedfe SET fedfeaeco=?, fedfecpsi=? WHERE fedfeiddf = ?;"); parametros.Add(new DBAxon.Parameters("aeco", detalle.ActividadEconomica, ParameterDirection.Input, DbType.Int32)); parametros.Add(new DBAxon.Parameters("cpsi", detalle.CodigoProductoSIN, ParameterDirection.Input, DbType.Int32)); parametros.Add(new DBAxon.Parameters("iddf", response.Proceso.IdDocFiscalERP, ParameterDirection.Input, DbType.Int32)); } } else { foreach (var detalle in factura.ListaDetalle) { sql.Append("UPDATE fedfe SET fedfeaeco=?, fedfecpsi=?, fedfecnan=? WHERE fedfeiddf = ?;"); parametros.Add(new DBAxon.Parameters("aeco", detalle.ActividadEconomica, ParameterDirection.Input, DbType.Int32)); parametros.Add(new DBAxon.Parameters("cpsi", detalle.CodigoProductoSIN, ParameterDirection.Input, DbType.Int32)); parametros.Add(new DBAxon.Parameters("cnan", detalle.CodigoNandina, ParameterDirection.Input, DbType.Int32)); parametros.Add(new DBAxon.Parameters("iddf", response.Proceso.IdDocFiscalERP, ParameterDirection.Input, DbType.Int32)); } } //BD DBAxon db = new DBAxon(); try { db.OpenFactoryConnection(); db.BeginTransaction(); db.SetLockModeToWait(); db.PrepareCommand(true, CommandType.Text, sql.ToString(), parametros.ToArray()); db.command.ExecuteNonQuery(); db.CommitTransaction(); } catch (Exception ex) { db.RollbackTransaction(); db.ExecuteNonQuery(CommandType.Text, "UPDATE fehfe SET fehfestat=" + int.Parse(EstadoDocumentoFiscal.E100_PendienteDeEnvio.ToString()) + " WHERE fehfeiddf=" + response.Proceso.IdDocFiscalERP); throw new Exception("Excepcion: GuardarResponseFactura() - " + ex.Message); } finally { db.CloseFactoryConnection(); db = null; } }