Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 12 additions & 4 deletions internal/orders/map_to_invoice.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ const appendAfterOrderId string = "X"
// Este produto será usado para adicionar um valor de 0.02 centavos ao pedido
const sampleProductSku string = "15000005677_sample"

func MapToInvoice(order Order, mappedHubs map[string]string) graph.OrderData {
return graph.OrderData{
func MapToInvoice(deliveryFeeOnly bool, order Order, mappedHubs map[string]string) graph.OrderData {
orderData := graph.OrderData{
OrderId: order.OrderId + appendAfterOrderId,
CustomerFederalTaxId: *order.Customer.CpfDocument,
DeliveryFee: float64(order.DeliveryFee),
Expand All @@ -23,10 +23,18 @@ func MapToInvoice(order Order, mappedHubs map[string]string) graph.OrderData {
LineItems: mapInvoiceLineItems(order.LineItems),
ShippingAddress: mapShippingAddress(order.Customer.Name, order.DeliveryAddress),
}

// Remove 1 centavo do deliveryFee e adiciona um produto com valor de 0.02 centavos.
if deliveryFeeOnly {
orderData.DeliveryFee = float64(order.DeliveryFee - 0.01)
orderData.LineItems = sampleLineItem()
}

return orderData
}

// Se adicionarmos um produto com o valor de 0.01 centavos,
// o valor do frete não é adicionado, então devemos ter um produto com um total de 0.02 centavos,
// Se adicionarmos um produto com o valor de 0.01 centavos, o valor do frete não é adicionado,
// então devemos ter um produto com um total de 0.02 centavos,
// e em seguida retirar 0.01 centavos do frete.
func sampleLineItem() []graph.LineItem {
return []graph.LineItem{
Expand Down
2 changes: 0 additions & 2 deletions internal/orders/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package orders

import (
"context"
"fmt"

"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo"
Expand Down Expand Up @@ -34,7 +33,6 @@ func (o *orderService) Save(ctx context.Context, order Order) error {
}

if count > 0 {
fmt.Println(".")
return nil
}

Expand Down
16 changes: 15 additions & 1 deletion internal/workers/ifood_to_mongo.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package workers

import (
"context"
"slices"

"github.com/JOKR-Services/ifood_nfs_rerun/internal/orders"
"golang.org/x/time/rate"
Expand All @@ -13,14 +14,27 @@ type Order struct {
}

func (w *worker) IfoodOrdersToMongo() error {
csvOrders, err := w.reader.ReadFromCSV()
ifoodOrders, err := w.orderService.GetOrders(context.Background())
if err != nil {
return err
}

ordersCodes := make([]string, 0)
for _, ifoodOrder := range ifoodOrders {
ordersCodes = append(ordersCodes, ifoodOrder.OrderCode)
}

csvOrders, err := w.reader.ReadFromCSV()
if err != nil {
return err
}

rate := rate.NewLimiter(10, 1)
for _, order := range csvOrders {
if slices.Contains(ordersCodes, order.ExternalOrderId) {
continue
}

if err := rate.Wait(context.Background()); err != nil {
return err
}
Expand Down
18 changes: 7 additions & 11 deletions internal/workers/mongo_to_bravalara.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,24 +13,20 @@ func (w *worker) MongoToBravalara() error {
return err
}

//
// Gerar produto fake 1 cent + deliveryFee
//

hubs, err := w.hubService.GetHubs(context.Background())
if err != nil {
return err
}

for _, order := range dbOrders {
fmt.Println(orders.MapToInvoice(order, hubs))

// if _, err := w.graphQlClient.GetInvoice(orders.MapToInvoice(order)); err != nil {
// return err
// }
order := dbOrders[0]

fmt.Println("Invoice request for order", order.OrderId, "sent")
//for _, order := range slices. {
if _, err := w.graphQlClient.GetInvoice(orders.MapToInvoice(true, order, hubs)); err != nil {
return err
}

fmt.Println("Invoice generation request for order", order.OrderId, "sent")
//}

return nil
}