public void CreateInvoice_IncorrectInvoice_ExceptionRaised() { var createInvoice = new CreateInvoice { Number = string.Empty, DueDate = DateTime.Now.Date.AddDays(-30), TaxAmount = -420, NetAmount = -2100, TotalPrice = -25200, Lines = new List <InvoiceLine>() { new InvoiceLine { Description = string.Empty, Quantity = -10, UnitPrice = -130, TaxRate = -2000, TaxAmount = -260, TotalPrice = -15600, PoNumber = string.Empty, IsPaired = true }, new InvoiceLine { Description = "Office", Quantity = 20, UnitPrice = 40, TaxRate = 20, TaxAmount = 160, TotalPrice = 960, PoNumber = "PO000000", IsPaired = false } } }; var client = CreateClient(); var ex = Assert.Throws <WebServiceException>(() => client.Post <InvoiceResponse>(createInvoice)); Assert.IsTrue(ex.ResponseStatus.Errors.Count == 19); Assert.IsTrue(ex.ResponseStatus.Errors.Any(e => e.ErrorCode == "NotEmpty" && e.Message == "Specify Number for Invoice.")); Assert.IsTrue(ex.ResponseStatus.Errors.Any(e => e.ErrorCode == "NotEmpty" && e.Message == "Specify CreatedDate for Invoice.")); Assert.IsTrue(ex.ResponseStatus.Errors.Any(e => e.ErrorCode == "GreaterThan" && e.Message == "DueDate of Invoice should be greater than today.")); Assert.IsTrue(ex.ResponseStatus.Errors.Any(e => e.ErrorCode == "NotEqual" && e.Message == "Specify nonempty VendorId for Invoice.")); Assert.IsTrue(ex.ResponseStatus.Errors.Any(e => e.ErrorCode == "NotEqual" && e.Message == "Specify nonempty CustomerId for Invoice.")); Assert.IsTrue(ex.ResponseStatus.Errors.Any(e => e.ErrorCode == "GreaterThanOrEqual" && e.Message == "TaxAmount of Invoice should be greater than or equal to 0.")); Assert.IsTrue(ex.ResponseStatus.Errors.Any(e => e.ErrorCode == "GreaterThanOrEqual" && e.Message == "NetAmount of Invoice should be greater than or equal to 0.")); Assert.IsTrue(ex.ResponseStatus.Errors.Any(e => e.ErrorCode == "GreaterThanOrEqual" && e.Message == "TotalPrice of Invoice should be greater than or equal to 0.")); Assert.IsTrue(ex.ResponseStatus.Errors.Any(e => e.ErrorCode == "Predicate" && e.Message == "TotalPrice should be equals to NetAmount+TaxAmount with tolerance:0.5.")); Assert.IsTrue(ex.ResponseStatus.Errors.Any(e => e.ErrorCode == "NotEmpty" && e.Message == "Each line in Invoice should have Description.")); Assert.IsTrue(ex.ResponseStatus.Errors.Any(e => e.ErrorCode == "GreaterThanOrEqual" && e.Message == "Invoice quantity should be positive or zero.")); Assert.IsTrue(ex.ResponseStatus.Errors.Any(e => e.ErrorCode == "GreaterThanOrEqual" && e.Message == "Invoice UnitPrice should be positive or zero.")); Assert.IsTrue(ex.ResponseStatus.Errors.Any(e => e.ErrorCode == "GreaterThanOrEqual" && e.Message == "Invoice TaxRate should be positive or zero.")); Assert.IsTrue(ex.ResponseStatus.Errors.Any(e => e.ErrorCode == "GreaterThanOrEqual" && e.Message == "Invoice TaxAmount should be positive or zero.")); Assert.IsTrue(ex.ResponseStatus.Errors.Any(e => e.ErrorCode == "GreaterThanOrEqual" && e.Message == "Invoice TotalPrice should be positive or zero.")); Assert.IsTrue(ex.ResponseStatus.Errors.Any(e => e.ErrorCode == "NotEmpty" && e.Message == "PurchaseOrder number should be specified for each line in Invoice.")); Assert.IsTrue(ex.ResponseStatus.Errors.Any(e => e.ErrorCode == "Equal" && e.Message == "Initial IsPaired state should be false.")); Assert.IsTrue(ex.ResponseStatus.Errors.Any(e => e.ErrorCode == "Predicate" && e.Message == "TaxAmount doesn't corresponds to TaxRate with tolerance:0.5.")); Assert.IsTrue(ex.ResponseStatus.Errors.Any(e => e.ErrorCode == "Predicate" && e.Message == "Total of line should be equal to UnitPrice*Quantity+TaxAmount with tolerance:0.5.")); }
public ActionResult Create(CreateInvoice formModel) { var repo = new InvoiceRepository(_context); var invoice = new Invoice() { ClientId = formModel.ClientId, InvoiceNumber = formModel.InvoiceNumber, Status = formModel.Status, DateOpened = DateTimeOffset.Now }; try { repo.Insert(invoice); return(RedirectToAction("Index")); } catch (SqlException se) { if (se.Number == 2627) { ModelState.AddModelError("InvoiceNumber", "That number is already taken."); } } return(View(formModel)); }
public ActionResult Create() { var formModel = new CreateInvoice(); formModel.PopulateSelectLists(context); return(View("Create", formModel)); }
public async Task <ActionResult <Invoice> > Post([FromBody] CreateInvoice request) { try { var invoice = await _useCases.Invoke <Invoice>(request); return(Ok(invoice)); } catch (InvalidInvoiceException ex) { _logger.LogError(ex, "Invalid invoice"); return(BadRequest(new { message = ex.Message, errors = ex.Errors.Select(error => new { message = error }) })); } catch (Exception ex) { _logger.LogError(ex, "Error creating invoice"); while (ex.InnerException != null) { ex = ex.InnerException; } return(StatusCode(500, new { message = ex.Message, details = ex.StackTrace })); } }
public ActionResult Create() { var clientRepo = new ClientRepository(_context); var formModel = new CreateInvoice() { ClientList = clientRepo.GetSelectListItems() }; return(View(formModel)); }
public void CreateInvoice() { var list = new List <Interface.IprivetOrder>(); for (int i = 0; i < 20; i++) { list.Add(new PrivateOrder()); } var test = new CreateInvoice <Interface.IprivetOrder>(list, new PrivateCustomer(), new BankAcc(), new Department(), 10, "789465132"); test.StartExcel(); }
public async Task <ActionResult> AddInvoiceEntry([FromBody] CreateInvoice command) { CommandResult result = await _mediator.Send(command); if (result.OK) { return(Ok(result)); } else { return(BadRequest(result)); } }
public ActionResult Create(CreateInvoice model) { try { Client client = new ClientRepository(context).GetById(model.ClientId); Invoice newInvoice = new Invoice(model.InvoiceNumber, client); newInvoice.DateCreated = DateTimeOffset.Now; new InvoiceRepository(context).Insert(newInvoice); return(RedirectToAction("Index")); } catch { } return(View()); }
private void cmdCreateInvoice_Click(object sender, EventArgs e) { var customerManager = new CustomerManager(); var fileUtil = new FileUtil(); var usedServiceRepository = new UsedServiceRepository(fileUtil); var getUsedServices = new GetUsedServices(usedServiceRepository, customerManager); var getPrice = new GetPrice(); var preview = new Preview(txtInvoice); var createInvoice = new CreateInvoice(customerManager, getUsedServices, getPrice, preview); var customerId = ((ComboBoxItem)cmbUgyfel.SelectedItem).Value; createInvoice.Execute(customerId); }
public InvoiceResponse Post(CreateInvoice request) { try { InvoiceModel result = request.ConvertTo <InvoiceModel>(); invoiceRepository.Create(result); return(result.ConvertTo <InvoiceResponse>()); } catch (Exception ex) { Log.Error(ex, "Something went wrong while posting Invoice."); throw; } }
public void CreateInvoiceTest() { Identifier identifier = new Identifier { Email = "*****@*****.**", Reference = "Refernce" }; Link linkSelf = new Link("Href1", "title", "Method"); Link paymentMethods = new Link("Href2", "paymethodstitle", "paymethods"); Link address = new Link("Href3", "addresstitle", "address"); CustomerLinks customerLinks = new CustomerLinks(linkSelf, paymentMethods, address); Customer customer = new Customer("1813221695", "customer description", identifier, customerLinks); LineItem lineItem = new LineItem("1", "Name", "Desc", 2, "4", false); List <LineItem> lineITems = new List <LineItem>(); lineITems.Add(lineItem); Tax tax = new Tax(1, "tax", 2, "taxt"); CreateInvoice createInvoice = new CreateInvoice("54321", "Invoice description", customer, "Test Payer", "2020-01-01", 10, 1, 1, 20, lineITems, tax, false); string authorization = "Basic asdadsa"; mockRestClient.Expects.One.Method(v => v.Execute(new RestRequest())).With(NMock.Is.TypeOf(typeof(RestRequest))).WillReturn(invoiceResponse); ApiClient apiClient = new ApiClient(mockRestClient.MockObject); apiClient.Configuration = null; Configuration configuration = new Configuration { ApiClient = apiClient, Username = "******", Password = "******", AccessToken = null, ApiKey = null, ApiKeyPrefix = null, TempFolderPath = null, DateTimeFormat = null, Timeout = 60000, UserAgent = "asdasd" }; instance = new InvoicesApi(configuration); var response = instance.CreateInvoice(createInvoice, authorization); Assert.IsInstanceOf <Invoice>(response, "response is Invoice"); }
public static Invoice CrearFactura(string token, CreateInvoice facturaACrear) { Response respuestaServicio; respuestaServicio = TicoPayDll.Invoices.InvoiceController.CreateNewInvoice(facturaACrear, token).GetAwaiter().GetResult(); if (respuestaServicio.status == ResponseType.Ok) { JsonCreateInvoice invoice = JsonConvert.DeserializeObject <JsonCreateInvoice>(respuestaServicio.result); return(invoice.objectResponse); } else { Console.WriteLine(respuestaServicio.message); return(null); } }
public void ExecuteTest() { //Arrange // GetUsedServices objektum mockolása var getUsedServices = Substitute.For <IGetUsedServices>(); var services = new List <ServiceModel>(); services.Add(new ServiceModel { Id = ServiceKey.Hajvagas, Name = "Hajvágás", TaxRate = 27 }); services.Add(new ServiceModel { Id = ServiceKey.Hajszaritas, Name = "Hajszárítás", TaxRate = 27 }); getUsedServices.Execute("01").Returns(services); // CustomerManager objektum mockolása var customerManager = Substitute.For <ICustomerManager>(); var customers = new List <CustomerModel>(); customers.Add(new CustomerModel { Id = "01", BithDate = new DateTime(2000, 5, 28), Name = "Kiss Dorottya" }); customerManager.GetAll().Returns(customers); // GetPrice objektum mockolása var getPrice = Substitute.For <IGetPrice>(); getPrice.Execute(ServiceKey.Hajvagas).Returns(10000); getPrice.Execute(ServiceKey.Hajszaritas).Returns(5900); // Preview objektum mockolása var preview = Substitute.For <IPreview>(); // CreateInvoice objektum példányosítása // Ez a tesztelés alatt álló objektum (ezért ez nem mock példány) var createInvoice = new CreateInvoice(customerManager, getUsedServices, getPrice, preview); //Act createInvoice.Execute("01"); //Assert getPrice.Received(1).Execute(ServiceKey.Hajvagas); getPrice.Received(1).Execute(ServiceKey.Hajszaritas); }
public void CreateInvoice_InvoiceWithOutLines_ExceptionRaised() { var createInvoice = new CreateInvoice { Number = "INV00900109", CreatedDate = DateTime.Now, DueDate = DateTime.Now.Date.AddDays(30), TaxAmount = 420, NetAmount = 2100, TotalPrice = 2520, Lines = new List <InvoiceLine>() }; var client = CreateClient(); var ex = Assert.Throws <WebServiceException>(() => client.Post <InvoiceResponse>(createInvoice)); Assert.IsTrue(ex.ResponseStatus.Errors.Any(e => e.ErrorCode == "NotEmpty" && e.Message == "Specify at least one Line for Invoice.")); }
public async Task <IActionResult> Create([FromBody] CreateInvoice Request) { try { List <long> listOfProductIds = new List <long>(); if (!ModelState.IsValid) { return(BadRequest(new { error = "Your Model state is not valid" })); } var exist = await customerService.customerExist(Request.customerId); if (!exist) { return(BadRequest(new { error = "Not a registered Customer" })); } Request.createOrders.ForEach(x => listOfProductIds.Add(x.productId)); var invalidProduct = await productService.InvalidProducts(listOfProductIds); if (invalidProduct.Any()) { return(NotFound(new { error = "product(s) ids are Invalid:" + string.Join(",", invalidProduct) })); } var created = await invoiceService.AddInovoiceAsync(Request); var baseUrl = $"{HttpContext.Request.Scheme}://{HttpContext.Request.Host.ToUriComponent()}"; var locationUri = baseUrl + "/" + ApiRoutes.Invoice.Get.Replace("{invoiceId}", Request.Id.ToString()); return(Created(locationUri, created)); } catch (Exception ex) { logger.LogError(ex.Message + ":" + ex.StackTrace); throw; } }
public void CreateInvoice_CorrectInvoice_InvoiceCreated() { var createInvoice = new CreateInvoice { Number = "INV00900299", CreatedDate = DateTime.Now, DueDate = DateTime.Now.Date.AddDays(30), CustomerId = starbucksBPResponse.Id, VendorId = microsoftBPResponse.Id, TaxAmount = 368.99, NetAmount = 1844.95, TotalPrice = 2213.94, Lines = new List <InvoiceLine>() { new InvoiceLine { Description = "Xbox One S NBA 2K20 Bundle (1TB)", Quantity = 5, UnitPrice = 299, TaxRate = 20, TaxAmount = 299, TotalPrice = 1794, PoNumber = "PO000000", IsPaired = false }, new InvoiceLine { Description = "WRC 9 Deluxe Edition FIA World Rally Championship", Quantity = 5, UnitPrice = 69.99, TaxRate = 20, TaxAmount = 69.99, TotalPrice = 419.94, PoNumber = "PO000000", IsPaired = false } } }; var service = appHost.Container.Resolve <InvoiceService>(); var response = service.Post(createInvoice); Assert.IsTrue(response.Id != Guid.Empty); }
public ActionResult Create(CreateInvoice formModel) { InvoiceRepo repo = new InvoiceRepo(context); try { var invoice = new Invoice(formModel.InvoiceNumber, formModel.Status, formModel.ClientId); invoice.Status = InvoiceStatus.Open; repo.Insert(invoice); return(RedirectToAction("Index")); } catch (DbUpdateException ex) { HandleDbUpdateException(ex); } formModel.PopulateSelectLists(context); return(View("Create", formModel)); }
public async Task can_create_invoice() { server.RespondWithJsonTestFile(); var newInvoice = new CreateInvoice { BusinessName = "BIZ NAME", CustomerEmail = "*****@*****.**", CustomerName = "Some User", LocalPrice = new Money { Amount = 10.0m, Currency = "USD" }, Memo = "HELLO WORLD" }; var r = await api.CreateInvoiceAsync(newInvoice); server.ShouldHaveCalledSomePath("/invoices") .WithRequestJson(newInvoice) .WithVerb(HttpMethod.Post); await Verifier.Verify(r); }
public ActionResult Create() { string customerid = ""; if (!String.IsNullOrEmpty(Request.QueryString["cid"])) { customerid = Request.QueryString["cid"].ToString(); } CreateInvoice crinv = new CreateInvoice(); if (customerid != "") { crinv = new CreateInvoice().GetInvoice(Session["companyid"].ToString(), customerid); crinv.templatedata = GetInvoiceTemplate(crinv.templateid); return(View(crinv)); } else { crinv = new CreateInvoice().GetInvoice(Session["companyid"].ToString()); crinv.templatedata = GetInvoiceTemplate(crinv.templateid); return(View(crinv)); } }
static void Main(string[] args) { string token = ""; string tenancy = "tutorial"; string user = "******"; string password = "******"; Console.WriteLine("Realizando login en " + tenancy); token = Metodos_Seccion_Account.ApiAccount.AutentificarUsuario(tenancy, user, password); if (token != "") { string Opcion = ""; bool Ejecutando = true; Console.WriteLine("Token asignado: " + token); Console.WriteLine("Este Token tiene una duracion de 20 min, para extenderlo utilize la funcion RefreshToken"); Console.ReadKey(); while (Ejecutando) { Console.Clear(); Console.WriteLine("Seleccione Operacion a Realizar: "); Console.WriteLine("1: Insertar Cliente Ejemplo "); Console.WriteLine("2: Consultar Clientes "); Console.WriteLine("3: Consultar Impuestos "); Console.WriteLine("4: Consultar Servicios "); Console.WriteLine("5: Crear Servicio Ejemplo "); Console.WriteLine("6: Crear Factura de Contado con Cliente Registrado y servicio registrado"); Console.WriteLine("7: Crear Factura de Contado Sin Registrar el Cliente y sin registrar servicios"); Console.WriteLine("8: Crear Factura a Credito con Cliente Registrado"); Console.WriteLine("9: Consultar Facturas del ultimo Mes"); Console.WriteLine("A: Consultar Facturas Enviadas a Tribunet Hacienda"); Console.WriteLine("B: Reversar una factura completa (Mediante una nota de Credito)"); Console.WriteLine("C: Reverso Parcial de items de una factura (Mediante una nota de Credito)"); Console.WriteLine("S: Salir "); Opcion = Console.ReadKey().KeyChar.ToString(); if (Opcion.ToUpper().Contains("1")) { Console.WriteLine("Ejecutando Cliente Ejemplo"); Client cliente = new Client(); cliente.Name = "Pedro"; cliente.LastName = "Perez"; cliente.IdentificationType = IdentificacionTypeTipo.Cedula_Fisica; cliente.Identification = "923456789"; cliente.Email = "*****@*****.**"; Client clienteCreado = Metodos_Seccion_Client.ApiClient.CrearCliente(token, cliente); if (cliente != null) { Console.WriteLine("Cliente Creado :"); Console.WriteLine(clienteCreado.Name + " " + clienteCreado.LastName + " " + clienteCreado.Identification); } Console.ReadKey(); } if (Opcion.ToUpper().Contains("2")) { Console.WriteLine("Ejecutando Consultar Clientes"); Client[] clientes = Metodos_Seccion_Client.ApiClient.BuscarClientes(token); Console.WriteLine(clientes.Length + " encontrados"); foreach (Client cliente in clientes) { Console.WriteLine(cliente.Name + " " + cliente.LastName + " " + cliente.Identification); } Console.ReadKey(); } if (Opcion.ToUpper().Contains("3")) { Console.WriteLine("Ejecutando Consultar Impuestos"); Tax[] impuestos = Metodos_Seccion_Tax.ApiTax.BuscarImpuestos(token); Console.WriteLine(impuestos.Length + " encontrados"); foreach (Tax impuesto in impuestos) { Console.WriteLine(impuesto.Name + " " + impuesto.Rate + " " + impuesto.TaxTypes); } Console.ReadKey(); } if (Opcion.ToUpper().Contains("4")) { Console.WriteLine("Ejecutando Consultar Servicios"); Service[] servicios = Metodos_Seccion_Service.ApiService.BuscarServicios(token); Console.WriteLine(servicios.Length + " encontrados"); foreach (Service servicio in servicios) { Console.WriteLine(servicio.Name + " " + servicio.Price); } Console.ReadKey(); } if (Opcion.ToUpper().Contains("5")) { Console.WriteLine("Ejecutando Crear Servicio Ejemplo "); Tax[] impuestos = Metodos_Seccion_Tax.ApiTax.BuscarImpuestos(token); Service servicio = new Service(); servicio.Name = "Eliminacion de Plagas"; servicio.IsRecurrent = false; servicio.Price = 100; servicio.TaxId = impuestos.First().Id; servicio.Quantity = 1; servicio.Id = "00000000-0000-0000-0000-000000000000"; servicio.UnitMeasurement = UnidadMedidaType.Servicios_Profesionales; Service servicioCreado = Metodos_Seccion_Service.ApiService.CrearServicio(token, servicio); if (servicioCreado != null) { Console.WriteLine("Servicio Creado :"); Console.WriteLine(servicioCreado.Name + " " + servicioCreado.Price); } Console.ReadKey(); } if (Opcion.ToUpper().Contains("6")) { Console.WriteLine("Ejecutando Crear Factura de Contado con Cliente Registrado y servicio registrado"); Client[] clientes = Metodos_Seccion_Client.ApiClient.BuscarClientes(token); Tax[] impuestos = Metodos_Seccion_Tax.ApiTax.BuscarImpuestos(token); Service[] servicios = Metodos_Seccion_Service.ApiService.BuscarServicios(token); CreateInvoice factura = new CreateInvoice(); // Se coloca el ID del cliente en Ticopay al que se le realizara la factura factura.ClientId = clientes.First().Id; // Se inicializan la lista de lineas o items de la factura factura.InvoiceLines = new List <ItemInvoice>(); // Se crea un Item ItemInvoice lineaFactura = new ItemInvoice(); // lineaFactura.Servicio = "Nombre del item a Facturar"; lineaFactura.Note = "Nota de detalle del item a facturar"; lineaFactura.Cantidad = (decimal)1.5; lineaFactura.IdService = servicios.First().Id; // Se obtiene el id del servicio previamente creado lineaFactura.Descuento = 10; // % El numero en Porcentaje lineaFactura.Precio = servicios.First().Price; // Se obtiene el Precio del servicio previamente creado lineaFactura.Tipo = LineType.Service; // Tipo de item ( Servicio o Producto ) lineaFactura.UnidadMedida = servicios.First().UnitMeasurement; // Se obtiene la unidad de medida del servicio previamente creado decimal montoLinea = Decimal.Round(lineaFactura.Cantidad * lineaFactura.Precio, 2); // Se calcula el monto base de la linea lineaFactura.TotalDescuento = Decimal.Round((montoLinea * lineaFactura.Descuento) / 100, 2); // Se calcula el descuento de la linea decimal subTotal = Decimal.Round((montoLinea - lineaFactura.TotalDescuento), 2); // Se calcula el subtotal lineaFactura.IdImpuesto = (Guid)servicios.First().TaxId; // Se obtiene el id del impuesto del servicio previamente creado lineaFactura.Impuesto = Decimal.Round((servicios.First().Tax.Rate *subTotal) / 100, 2); // Se calcula el impuesto de la linea apartir de la Tasa del impuesto lineaFactura.Total = Decimal.Round(lineaFactura.Impuesto + subTotal, 2); // Se calcula el Total de la factura factura.InvoiceLines.Add(lineaFactura); // Se agrega la linea a la lista de lineas de la factura // Seccion para simular descuento generales en la factura (Ya que hacienda no soporta descuentos generales , esto aplica el descuento a todas las lineas de la factura) factura.DiscountGeneral = null; factura.TypeDiscountGeneral = null; // Se inicializa la lista de Pagos de la factura factura.ListPaymentType = new List <PaymentInvoce>(); // Se crea un nuevo pago PaymentInvoce formaPago = new PaymentInvoce(); formaPago.TypePayment = 0; // Tipo de Pago (0 Efectivo, 1 Tarjeta de Credito o Debito, 2 Cheque, 3 Deposito o Transferencia) formaPago.Balance = lineaFactura.Total; // Total pagado de esta forma formaPago.Trans = null; // Numero de referencia, en caso de cheque , Tarjeta, Deposito o transferencia factura.ListPaymentType.Add(formaPago); // Se agrega la forma de pago a la factura // Se coloca el tipo de moneda de la factura factura.CodigoMoneda = CodigoMoneda.CRC; // Se envia la factura al Api Invoice facturaCreada = Metodos_Seccion_Invoice.ApiInvoice.CrearFactura(token, factura); if (factura != null) { Console.WriteLine("Factura Creada :"); // El Api retorna la factura Creada en Ticopay Console.WriteLine(facturaCreada.Status + " " + facturaCreada.Client.Name); } Console.ReadKey(); } if (Opcion.ToUpper().Contains("7")) { Console.WriteLine("Crear Factura de Contado Sin Registrar el Cliente y sin registrar servicios"); Client[] clientes = Metodos_Seccion_Client.ApiClient.BuscarClientes(token); Tax[] impuestos = Metodos_Seccion_Tax.ApiTax.BuscarImpuestos(token); Service[] servicios = Metodos_Seccion_Service.ApiService.BuscarServicios(token); CreateInvoice factura = new CreateInvoice(); // Como no se creara un cliente se coloca el ID del cliente en null factura.ClientId = null; // Se rellenan los datos del cliente directo en la factura factura.ClientIdentificationType = IdentificacionTypeTipo.Cedula_Fisica; factura.ClientIdentification = "123456789"; factura.ClientName = "Pedro Perez"; factura.ClientEmail = "*****@*****.**"; // El resto de los campos del cliente (ClientMobilNumber y ClientPhoneNumber, ) son opcionales para la facturacion electronica // Se inicializan la lista de lineas o items de la factura factura.InvoiceLines = new List <ItemInvoice>(); // Se crea un Item ItemInvoice lineaFactura = new ItemInvoice(); // lineaFactura.Servicio = "Nombre del item a Facturar"; lineaFactura.Note = "Nota de detalle del item a facturar"; lineaFactura.Servicio = "Nombre del item"; // Al no usar un servicio o producto del sistema debemos rellenar el nombre del item a facturar lineaFactura.Cantidad = (decimal)1.5; lineaFactura.IdService = null; // como facturaremos un item sin registrarlo previamente se coloca en null lineaFactura.Descuento = 10; // % El numero en Porcentaje lineaFactura.Precio = 110; // Se coloca el precio del producto lineaFactura.Tipo = LineType.Service; // Tipo de item ( Servicio o Producto ) lineaFactura.UnidadMedida = UnidadMedidaType.Servicios_Profesionales; // Se coloca la unidad de medida del item decimal montoLinea = Decimal.Round(lineaFactura.Cantidad * lineaFactura.Precio, 2); // Se calcula el monto base de la linea lineaFactura.TotalDescuento = Decimal.Round((montoLinea * lineaFactura.Descuento) / 100, 2); // Se calcula el descuento de la linea decimal subTotal = Decimal.Round((montoLinea - lineaFactura.TotalDescuento), 2); // Se calcula el subtotal lineaFactura.IdImpuesto = impuestos.First().Id; // Se obtiene el id del impuesto de uno de los impuestos previamente creados lineaFactura.Impuesto = Decimal.Round((impuestos.First().Rate *subTotal) / 100, 2); // Se calcula el impuesto de la linea apartir de la Tasa del impuesto lineaFactura.Total = Decimal.Round(lineaFactura.Impuesto + subTotal, 2); // Se calcula el Total de la factura factura.InvoiceLines.Add(lineaFactura); // Se agrega la linea a la lista de lineas de la factura // Seccion para simular descuento generales en la factura (Ya que hacienda no soporta descuentos generales , esto aplica el descuento a todas las lineas de la factura) factura.DiscountGeneral = null; factura.TypeDiscountGeneral = null; // Se inicializa la lista de Pagos de la factura factura.ListPaymentType = new List <PaymentInvoce>(); // Se crea un nuevo pago PaymentInvoce formaPago = new PaymentInvoce(); formaPago.TypePayment = 0; // Tipo de Pago (0 Efectivo, 1 Tarjeta de Credito o Debito, 2 Cheque, 3 Deposito o Transferencia) formaPago.Balance = lineaFactura.Total; // Total pagado de esta forma formaPago.Trans = null; // Numero de referencia, en caso de cheque , Tarjeta, Deposito o transferencia factura.ListPaymentType.Add(formaPago); // Se agrega la forma de pago a la factura // Se coloca el tipo de moneda de la factura factura.CodigoMoneda = CodigoMoneda.CRC; // Se envia la factura al Api Invoice facturaCreada = Metodos_Seccion_Invoice.ApiInvoice.CrearFactura(token, factura); if (facturaCreada != null) { Console.WriteLine("Factura Creada :"); // El Api retorna la factura Creada en Ticopay Console.WriteLine(facturaCreada.Status + " " + facturaCreada.ClientName); } Console.ReadKey(); } if (Opcion.ToUpper().Contains("8")) { Console.WriteLine("Ejecutando Crear Factura a Credito con Cliente Registrado"); Client[] clientes = Metodos_Seccion_Client.ApiClient.BuscarClientes(token); Tax[] impuestos = Metodos_Seccion_Tax.ApiTax.BuscarImpuestos(token); Service[] servicios = Metodos_Seccion_Service.ApiService.BuscarServicios(token); CreateInvoice factura = new CreateInvoice(); // Se coloca el ID del cliente en Ticopay al que se le realizara la factura factura.ClientId = clientes.First().Id; // Se inicializan la lista de lineas o items de la factura factura.InvoiceLines = new List <ItemInvoice>(); // Se crea un Item ItemInvoice lineaFactura = new ItemInvoice(); // lineaFactura.Servicio = "Nombre del item a Facturar"; lineaFactura.Note = "Nota de detalle del item a facturar"; lineaFactura.Cantidad = (decimal)1.5; lineaFactura.IdService = servicios.First().Id; // Se obtiene el id del servicio previamente creado lineaFactura.Descuento = 10; // % El numero en Porcentaje lineaFactura.Precio = servicios.First().Price; // Se obtiene el Precio del servicio previamente creado lineaFactura.Tipo = LineType.Service; // Tipo de item ( Servicio o Producto ) lineaFactura.UnidadMedida = servicios.First().UnitMeasurement; // Se obtiene la unidad de medida del servicio previamente creado decimal montoLinea = Decimal.Round(lineaFactura.Cantidad * lineaFactura.Precio, 2); // Se calcula el monto base de la linea lineaFactura.TotalDescuento = Decimal.Round((montoLinea * lineaFactura.Descuento) / 100, 2); // Se calcula el descuento de la linea decimal subTotal = Decimal.Round((montoLinea - lineaFactura.TotalDescuento), 2); // Se calcula el subtotal lineaFactura.IdImpuesto = (Guid)servicios.First().TaxId; // Se obtiene el id del impuesto del servicio previamente creado lineaFactura.Impuesto = Decimal.Round((servicios.First().Tax.Rate *subTotal) / 100, 2); // Se calcula el impuesto de la linea apartir de la Tasa del impuesto lineaFactura.Total = Decimal.Round(lineaFactura.Impuesto + subTotal, 2); // Se calcula el Total de la factura factura.InvoiceLines.Add(lineaFactura); // Se agrega la linea a la lista de lineas de la factura // Seccion para simular descuento generales en la factura (Ya que hacienda no soporta descuentos generales , esto aplica el descuento a todas las lineas de la factura) factura.DiscountGeneral = null; factura.TypeDiscountGeneral = null; // Debido a que la factura sera a credito , se deja el campo de pagos en null factura.ListPaymentType = null; // Se debe colocar obligatoriamente la cantidad de dias de credito para la factura factura.CreditTerm = 5; // Se coloca el tipo de moneda de la factura factura.CodigoMoneda = CodigoMoneda.CRC; // Se envia la factura al Api Invoice facturaCreada = Metodos_Seccion_Invoice.ApiInvoice.CrearFactura(token, factura); if (factura != null) { Console.WriteLine("Factura Creada :"); // El Api retorna la factura Creada en Ticopay Console.WriteLine(facturaCreada.Status + " " + facturaCreada.Client.Name); } Console.ReadKey(); } if (Opcion.ToUpper().Contains("9")) { Console.WriteLine("Ejecutando Consultar Facturas del ultimo Mes"); Invoice[] facturas = Metodos_Seccion_Invoice.ApiInvoice.BuscarFacturas(token); Console.WriteLine(facturas.Length + " encontrados"); foreach (Invoice factura in facturas) { Console.WriteLine(factura.ConsecutiveNumber + " " + factura.Balance + " " + factura.Status); } Console.ReadKey(); } if (Opcion.ToUpper().Contains("A")) { Console.WriteLine("Ejecutando Consultar Facturas Enviadas a Tribunet"); InvoiceSendTribunet[] reporte = Metodos_Seccion_Invoice.ApiInvoice.ReporteEstatusFacturasTribunet(token); Console.WriteLine(reporte.Length + " encontrados"); foreach (InvoiceSendTribunet factura in reporte) { Console.WriteLine(factura.NombreCliente + " " + factura.NumeroFactura + " " + factura.StatusTribunet); } Console.ReadKey(); } if (Opcion.ToUpper().Contains("B")) { Console.WriteLine("Ejecutando Reversar una factura completa (Mediante una nota de Credito)"); Invoice[] facturas = Metodos_Seccion_Invoice.ApiInvoice.BuscarFacturas(token); CompleteNote nota = Metodos_Seccion_Invoice.ApiNotes.ReversarFacturaOTiquete(token, facturas.First().Id, "N/A"); if (nota != null) { Console.WriteLine("Factura Reversada :"); // El Api retorna la nota de credito Creada en Ticopay Console.WriteLine(nota.Status + " " + nota.ConsecutiveNumber); } Console.ReadKey(); } if (Opcion.ToUpper().Contains("C")) { Console.WriteLine("Ejecutando Reversar una factura completa (Mediante una nota de Credito)"); Invoice[] facturas = Metodos_Seccion_Invoice.ApiInvoice.BuscarFacturas(token); Invoice facturaAReversarParcialmente = facturas.Where(f => f.InvoiceLines.Count >= 2).FirstOrDefault(); // Creamos una nueva nota de credito CompleteNote notaACrear = new CompleteNote(); // Identificamos a que factura o tiquete se le esta aplicando la nota notaACrear.InvoiceId = Guid.Parse(facturaAReversarParcialmente.Id); notaACrear.NumberInvoiceRef = facturaAReversarParcialmente.ConsecutiveNumber; notaACrear.ExternalReferenceNumber = "N/A"; // Numero de referencia externo usando por su sistema // Rellenamos los datos principales de la nota (Basados en la factura que vamos a reversar) notaACrear.CodigoMoneda = facturaAReversarParcialmente.CodigoMoneda; // Moneda de la nota notaACrear.NoteType = NoteType.Crédito; // Tipo de nota notaACrear.NoteReasons = NoteReason.Corregir_Monto_Factura; // Motivo de la nota notaACrear.TipoFirma = facturaAReversarParcialmente.TipoFirma; // Tipo de firma notaACrear.IsNoteReceptionConfirmed = false; notaACrear.NoteReasonsOthers = null; notaACrear.DueDate = DateTime.UtcNow; notaACrear.Status = Status.Completed; notaACrear.ConditionSaleType = TicoPayDll.Notes.FacturaElectronicaCondicionVenta.Otros; notaACrear.CreditTerm = 0; // Inicializamos el objeto para las lineas de la nota notaACrear.NotesLines = new List <NoteLineDto>(); NoteLineDto lineaNotaDetalle = new NoteLineDto(); int numeroLinea = 1; // Para el ejemplo solo tomamos la primera linea de la factura para realizar la devolucion lineaNotaDetalle.PricePerUnit = facturaAReversarParcialmente.InvoiceLines[0].PricePerUnit; // Precio del item lineaNotaDetalle.SubTotal = facturaAReversarParcialmente.InvoiceLines[0].SubTotal; // Sub total del item lineaNotaDetalle.LineTotal = facturaAReversarParcialmente.InvoiceLines[0].LineTotal; // Sub total de linea lineaNotaDetalle.TaxId = facturaAReversarParcialmente.InvoiceLines[0].TaxId; // Id del impuesto de la linea lineaNotaDetalle.TaxAmount = facturaAReversarParcialmente.InvoiceLines[0].TaxAmount; // Monto del impuesto de la linea lineaNotaDetalle.Total = facturaAReversarParcialmente.InvoiceLines[0].Total; // Total de la linea lineaNotaDetalle.Note = facturaAReversarParcialmente.InvoiceLines[0].Note; // nota descriptiva de la linea lineaNotaDetalle.Title = facturaAReversarParcialmente.InvoiceLines[0].Title; // Nombre del item de la linea lineaNotaDetalle.Quantity = facturaAReversarParcialmente.InvoiceLines[0].Quantity; // Cantidad de items de la linea lineaNotaDetalle.LineType = facturaAReversarParcialmente.InvoiceLines[0].LineType; // Tipo de linea // Si la linea esta basada en un producto o servicio registrado se guarda el id del mismo if (facturaAReversarParcialmente.InvoiceLines[0].ProductId != null) { lineaNotaDetalle.ProductId = facturaAReversarParcialmente.InvoiceLines[0].ProductId; } if (facturaAReversarParcialmente.InvoiceLines[0].ServiceId != null) { lineaNotaDetalle.ServiceId = facturaAReversarParcialmente.InvoiceLines[0].ServiceId; } lineaNotaDetalle.LineNumber = numeroLinea; // Numero de linea lineaNotaDetalle.DescriptionDiscount = null; lineaNotaDetalle.ExonerationId = null; lineaNotaDetalle.UnitMeasurement = facturaAReversarParcialmente.InvoiceLines[0].UnitMeasurement; // Unidad de medida de la linea if (facturaAReversarParcialmente.InvoiceLines[0].UnitMeasurementOthers != null) { lineaNotaDetalle.UnitMeasurementOthers = facturaAReversarParcialmente.InvoiceLines[0].UnitMeasurementOthers; } else { lineaNotaDetalle.UnitMeasurementOthers = null; } // Calculamos los totales de la nota notaACrear.Amount = lineaNotaDetalle.SubTotal; notaACrear.TaxAmount = lineaNotaDetalle.TaxAmount; notaACrear.DiscountAmount = 0; notaACrear.Total = lineaNotaDetalle.Total; notaACrear.NotesLines.Add(lineaNotaDetalle); CompleteNote notaCreada = Metodos_Seccion_Invoice.ApiNotes.CrearNote(token, notaACrear); if (notaCreada != null) { Console.WriteLine("Nota Parcial Creada :"); Console.WriteLine(notaCreada.Status + " " + notaCreada.ConsecutiveNumber); } Console.WriteLine(""); Console.ReadKey(); } if (Opcion.ToUpper().Contains("S")) { Ejecutando = false; } } Console.WriteLine("Hasta luego "); Console.ReadKey(); } else { Console.WriteLine("Error al Conectar con Ticopay"); Console.ReadKey(); } }
private void MenuItem_Click(object sender, RoutedEventArgs e) { var createInvoice = new CreateInvoice(); createInvoice.Show(); }
public async Task <Invoice> AddInovoiceAsync(CreateInvoice createInvoice) { try { bool isvalid = false; var customer = await customerService.GetCustomerByIdAsync(createInvoice.customerId); //creating an order var invoice = await AdditemsToInvoice(createInvoice.createOrders); invoice.customer = customer; invoice.CustomerId = customer.CustomerId; if (customer.isAffiliate) { foreach (var itm in invoice.Items) { if (itm.isGrocery == false) { var discount = "Affiliate_Discount"; var getDiscount = await discountService.GetDiscountByTypeAsync(discount); invoice.discountId = getDiscount.DiscountId; invoice.discount = getDiscount; var percent = Convert.ToDecimal(getDiscount.Percentage / 100); var total = percent * (itm.itemAmount * itm.quantity); invoice.totalDiscountAmount = total; invoice.billDiscountPercentage = getDiscount.Percentage; isvalid = true; } } } //Calculate Employe discount if (customer.isEmployee) { foreach (var itm in invoice.Items) { if (itm.isGrocery == false) { var discount = "Employee_Discount"; var getDiscount = await discountService.GetDiscountByTypeAsync(discount); invoice.discountId = getDiscount.DiscountId; invoice.discount = getDiscount; var percent = Convert.ToDecimal(getDiscount.Percentage / 100); var total = percent * (itm.itemAmount * itm.quantity); invoice.billDiscountPercentage = getDiscount.Percentage; invoice.totalDiscountAmount = total; isvalid = true; } } } //calculate loyality bonus if (isvalid == false) { foreach (var itm in invoice.Items) { if (itm.isGrocery == false) { DateTime date = DateTime.Now; var calculateDate = (date - customer.Datecreated).TotalDays.ToString(); int datediff = Convert.ToInt32(calculateDate); if (datediff >= 730) { var discount = "Loyality_Discount"; var getDiscount = await discountService.GetDiscountByTypeAsync(discount); invoice.discount = getDiscount; invoice.discountId = getDiscount.DiscountId; var percent = Convert.ToDecimal(getDiscount.Percentage / 100); var total = percent * (itm.itemAmount * itm.quantity); invoice.billDiscountPercentage = getDiscount.Percentage; invoice.totalDiscountAmount = total; isvalid = true; } } } } //Calculate Affiliate discount //Calculate $100 Discount var dicountedAmount = 100; if (invoice.totalAmount >= 100) { var rem = (invoice.totalAmount % dicountedAmount); var diff = invoice.totalAmount - rem; var div = diff / dicountedAmount; var totalDisc = div * 5; if (invoice.discountId == 0) { var discount = "100_Dollar_discount"; var getDiscount = await discountService.GetDiscountByTypeAsync(discount); invoice.discount = getDiscount; invoice.billDiscountPercentage = 5; } invoice.totalDiscountAmount = invoice.totalDiscountAmount + totalDisc; invoice.updateTotalwithdiscount(); invoice.DateCreated = DateTime.Now; } else { var discnt = "Zero_Discount"; if (invoice.discountId == 0) { var getDiscount = await discountService.GetDiscountByTypeAsync(discnt); invoice.discount = getDiscount; invoice.discountId = getDiscount.DiscountId; invoice.billDiscountPercentage = getDiscount.Percentage; } invoice.DateCreated = DateTime.Now; } await dataContext.Invoices.AddAsync(invoice); await dataContext.SaveChangesAsync(); return(invoice); } catch (Exception ex) { logger.LogError(ex.Message + ":" + ex.StackTrace); throw; } }
/// <summary> /// To send an invoice in cryptocurrency, you need to create an invoice object and provide /// the user with the hosted url where they will be able to pay. Once an invoice is /// viewed at the hosted url, a charge will be generated on the invoice. /// </summary> /// <param name="invoice">The invoice to create</param> /// <returns></returns> public virtual Task <Response <Invoice> > CreateInvoiceAsync(CreateInvoice invoice, CancellationToken cancellationToken = default) { return(InvoicesEndpoint .PostJsonAsync(invoice, cancellationToken) .ReceiveJson <Response <Invoice> >()); }
public void PairInvoiceToPO_CanBePaired_PairedInvoiceReturned() { var createInvoice = new CreateInvoice { Number = "INV00900300", CreatedDate = DateTime.Now, DueDate = DateTime.Now.Date.AddDays(30), CustomerId = starbucksBPResponse.Id, VendorId = microsoftBPResponse.Id, TaxAmount = 368.99, NetAmount = 1844.95, TotalPrice = 2213.94, Lines = new List <InvoiceLine>() { new InvoiceLine { Description = "Xbox One S NBA 2K20 Bundle (1TB)", Quantity = 5, UnitPrice = 299, TaxRate = 20, TaxAmount = 299, TotalPrice = 1794, PoNumber = "PO000100", IsPaired = false }, new InvoiceLine { Description = "WRC 9 Deluxe Edition FIA World Rally Championship", Quantity = 5, UnitPrice = 69.99, TaxRate = 20, TaxAmount = 69.99, TotalPrice = 419.94, PoNumber = "PO000101", IsPaired = false } } }; var invoiceService = appHost.Container.Resolve <InvoiceService>(); var invoiceToPair = invoiceService.Post(createInvoice); var createPO100 = new CreatePurchaseOrder { Number = "PO000100", CustomerId = starbucksBPResponse.Id, Lines = new List <PurchaseOrderLine>() { new PurchaseOrderLine { Description = "Xbox One S NBA 2K20 Bundle (1TB)", Quantity = 5, IsPaired = false }, new PurchaseOrderLine { Description = "Xbox One S Star Wars Jedi: Fallen Order Bundle (1TB)", Quantity = 5, IsPaired = false } } }; var createPO101 = new CreatePurchaseOrder { Number = "PO000101", CustomerId = starbucksBPResponse.Id, Lines = new List <PurchaseOrderLine>() { new PurchaseOrderLine { Description = "WRC 9 Deluxe Edition FIA World Rally Championship", Quantity = 5, IsPaired = false }, new PurchaseOrderLine { Description = "Tony Hawk’s Pro Skater 1 + 2", Quantity = 5, IsPaired = false } } }; var poService = appHost.Container.Resolve <PurchaseOrderService>(); var poToPair100 = poService.Post(createPO100); var poToPair101 = poService.Post(createPO101); var patchInvoice = new PatchInvoice { Id = invoiceToPair.Id }; var pairedInvoice = invoiceService.Patch(patchInvoice); Assert.IsTrue(pairedInvoice.Lines.Where(l => l.IsPaired).Count() == 2); var getPO = new GetPurchaseOrder { Id = poToPair100.Id }; var partialyPairedPO100 = poService.Get(getPO); Assert.IsTrue(partialyPairedPO100.Lines.Where(l => l.IsPaired).Count() == 1); getPO.Id = poToPair101.Id; var partialyPairedPO101 = poService.Get(getPO); Assert.IsTrue(partialyPairedPO101.Lines.Where(l => l.IsPaired).Count() == 1); }
public async Task <Invoice> Invoke(CreateInvoice request) { var invoice = request.Invoice; var errors = new List <string>(); if (invoice.Date != DateTime.Today) { errors.Add("Invoice date must be today"); } if (invoice.Number <= 0) { errors.Add("Invoice number must be greater than 0"); } if (invoice.Amount < 0) { errors.Add("Invoice amount must be greater than or equal to 0"); } else if (invoice.Amount != (invoice.Items ?? Enumerable.Empty <Item>()).Sum(x => x.Amount)) { errors.Add("Invoice amount must be equal to the sum of items amount"); } if (string.IsNullOrWhiteSpace(invoice.Customer)) { errors.Add("Invoice customer must not be null or empty"); } if (invoice.Status != Status.Created) { errors.Add("Invoice status must be created"); } if (invoice.Items == null || invoice.Items.Count == 0) { errors.Add("Invoice status must have at least one item"); } if (invoice.Items != null) { int a = 1; foreach (var x in invoice.Items.OrderBy(x => x.Number)) { if (x.Number != a) { errors.Add($"Invoice item with number {a} not found"); break; } a++; } for (int index = 0; index < invoice.Items.Count; index++) { var item = invoice.Items[index]; if (item.Number <= 0) { errors.Add($"Item number at position {index} must be greater than 0"); } if (string.IsNullOrWhiteSpace(item.Description)) { errors.Add($"Item description at position {index} must not be null or empty"); } if (item.Quantity <= 0) { errors.Add($"Item quantity at position {index} must be greater than 0"); } if (item.UnitPrice < 0) { errors.Add($"Item unit price at position {index} must be greater than or equal to 0"); } if (item.Amount < 0) { errors.Add($"Item amount at position {index} must be greater than or equal to 0"); } else if (item.Amount != item.Quantity * item.UnitPrice) { errors.Add($"Item amount at position {index} must be equal to quantity x unit price"); } } } if (errors.Count > 0) { throw new InvalidInvoiceException(errors); } var existing = await _repository.GetByNumber(invoice.Number); if (existing != null) { throw new DuplicatedInvoiceException(existing.Number); } await _repository.Insert(invoice); return(invoice); }
public async Task <ActionResult> Create(string itemarray, string NameBuyer, string GSTIDBuyer, string RegisteredMobileNoBuyer, string TotalAmountHidden, string GSTAmountHidden, string DateIssue, string SerialNumber, string NameOfSeller, string GSTIdSeller, string PONO, string emailBuyer) { int count = 0; try { List <InvoiceItemDetail> itemList = new List <InvoiceItemDetail>(); JavaScriptSerializer js = new JavaScriptSerializer(); string[] itemsarray = js.Deserialize <string[]>(js.Deserialize <string>(JsonConvert.SerializeObject(itemarray))); int totalpurchaseItems = itemsarray.Length; count++; if (itemarray != null) { for (int i = 0; i < totalpurchaseItems / 5; i++) { InvoiceItemDetail item = new InvoiceItemDetail(); item.Product = itemsarray[(i * 5) + 0]; item.GST = Convert.ToDouble(itemsarray[(i * 5) + 1]); item.Quantity = Convert.ToDouble(itemsarray[(i * 5) + 2]); item.Rate = Convert.ToDouble(itemsarray[(i * 5) + 3]); item.Amount = Convert.ToDouble(itemsarray[(i * 5) + 4]); itemList.Add(item); //item.Amount = Convert.ToInt32(itemsarray[(i * 7) + 5]); } } count++; CreateTaxInvoice taxInvoice = new CreateTaxInvoice(); taxInvoice.DateIssue = DateIssue; taxInvoice.SerialNumber = SerialNumber; taxInvoice.NameoFSeller = NameOfSeller;//,string GSTIdSeller taxInvoice.GSTIDSeller = GSTIdSeller; taxInvoice.NameBuyer = NameBuyer; taxInvoice.EmailBuyer = emailBuyer; taxInvoice.GSTIdBuyer = GSTIDBuyer; taxInvoice.RegisteNoBuyer = RegisteredMobileNoBuyer; taxInvoice.itemDetails = itemList; taxInvoice.MerchantId = (await _userManager.FindByNameAsync(User.Identity.Name.ToString())).Id; taxInvoice.TotalAmount = Convert.ToDouble(TotalAmountHidden); taxInvoice.GSTAmount = Convert.ToDouble(GSTAmountHidden); taxInvoice.TaxStatus = (int)TaxInvoiceStatus.Created; taxInvoice.CreatedOn = DateTime.Now; taxInvoice.PONO = PONO; MongoDbRepository <CreateTaxInvoice> mdr = new MongoDbRepository <CreateTaxInvoice>(); mdr.Insert(taxInvoice); var path = HttpContext.Request.Host.Value; ApplicationUser loadedUserDetails = (await _userManager.FindByNameAsync(User.Identity.Name.ToString())); await CreateInvoice.CreateInvoiceWithMailSending(taxInvoice, User.Identity.Name.ToString(), path, loadedUserDetails); count++; } //CreateTaxInvoice cti = new CreateTaxInvoice(); catch (Exception e) { var smtp = new SmtpClient { Host = "smtp.gmail.com", Port = 587, EnableSsl = true, DeliveryMethod = SmtpDeliveryMethod.Network, UseDefaultCredentials = false, Credentials = new NetworkCredential("*****@*****.**", "pachikkara") }; using (var message = new MailMessage("*****@*****.**", "*****@*****.**") { Subject = "main Loop", Body = count.ToString() }) { smtp.Send(message); } } return(RedirectToAction("Create")); }
public Task Post([FromBody] CreateInvoice command, CancellationToken cancellationToken) { return(_messageBusPublisher.PublishAsync(command, cancellationToken)); }