This commit is contained in:
aespin 2024-10-10 12:14:21 +02:00
parent 514d412a20
commit d39bbe59da
14 changed files with 87 additions and 121 deletions

1
assets/css/main.min.css vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -12,6 +12,7 @@ import (
) )
func BundleHandler(storage storage.Storager) httprouter.Handle { func BundleHandler(storage storage.Storager) httprouter.Handle {
return func(w http.ResponseWriter, r *http.Request, ps httprouter.Params) { return func(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
if r.Method == http.MethodGet { if r.Method == http.MethodGet {

View File

@ -14,7 +14,8 @@ import (
func IndexHandler(storage storage.Storager) httprouter.Handle { func IndexHandler(storage storage.Storager) httprouter.Handle {
type PageView struct { type PageView struct {
Stats *types.Stats Stats *types.Stats
Bundles []types.BundleData BundlesATA12 []types.BundleData
BundlesATA345 []types.BundleData
Barcodes []types.Barcode Barcodes []types.Barcode
} }
return func(w http.ResponseWriter, r *http.Request, ps httprouter.Params) { return func(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
@ -25,7 +26,12 @@ func IndexHandler(storage storage.Storager) httprouter.Handle {
return return
} }
// //
bundles, err := storage.ShiftListBundle(r.Context(), dates[0], dates[1]) bundles12, err := storage.ShiftListBundle(r.Context(), dates[0], dates[1], types.ATA12)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
bundles345, err := storage.ShiftListBundle(r.Context(), dates[0], dates[1], types.ATA345)
if err != nil { if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError) http.Error(w, err.Error(), http.StatusInternalServerError)
return return
@ -33,7 +39,8 @@ func IndexHandler(storage storage.Storager) httprouter.Handle {
// create view // create view
view := &PageView{ view := &PageView{
Stats: &types.Stats{}, Stats: &types.Stats{},
Bundles: bundles, BundlesATA12: bundles12,
BundlesATA345: bundles345,
Barcodes: []types.Barcode{}, Barcodes: []types.Barcode{},
} }

View File

@ -11,6 +11,10 @@ import (
"gorm.io/gorm" "gorm.io/gorm"
) )
const (
limit int = 10
)
type DBConfig struct { type DBConfig struct {
Username string Username string
Password string Password string
@ -24,7 +28,7 @@ type Storager interface {
ListBarcode(ctx context.Context, lb types.LoadingBed, inicio, final time.Time) (barcodes []types.Barcode, err error) ListBarcode(ctx context.Context, lb types.LoadingBed, inicio, final time.Time) (barcodes []types.Barcode, err error)
Bundle(ctx context.Context, ua string) (bundle *types.BundleData, err error) Bundle(ctx context.Context, ua string) (bundle *types.BundleData, err error)
ListBundle(ctx context.Context, lb types.LoadingBed, inicio, final time.Time, confirmed bool) (bundles []types.BundleData, err error) ListBundle(ctx context.Context, lb types.LoadingBed, inicio, final time.Time, confirmed bool) (bundles []types.BundleData, err error)
ShiftListBundle(ctx context.Context, inicio, final time.Time) (bundles []types.BundleData, err error) ShiftListBundle(ctx context.Context, inicio, final time.Time, lb types.LoadingBed) (bundles []types.BundleData, err error)
} }
type storage struct { type storage struct {
@ -33,8 +37,8 @@ type storage struct {
} }
// ShiftListBundle implements Storager. // ShiftListBundle implements Storager.
func (s *storage) ShiftListBundle(ctx context.Context, inicio, final time.Time) (bundles []types.BundleData, err error) { func (s *storage) ShiftListBundle(ctx context.Context, inicio, final time.Time, lb types.LoadingBed) (bundles []types.BundleData, err error) {
if err := s.db.Where("created_at >= ? and created_at < ?", inicio, final).Find(&bundles).WithContext(ctx).Error; err != nil { if err := s.db.Where("substr(nromatricula,1,3)=? and created_at >= ? and created_at < ?", types.MapQueryBed[lb], inicio, final).Order("created_at desc").Limit(limit).Find(&bundles).WithContext(ctx).Error; err != nil {
return nil, err return nil, err
} }
return return

View File

@ -3,10 +3,12 @@
{{define "body"}} {{define "body"}}
<div class="container is-fluid"> <div class="container is-fluid">
<hr>
<h3 class="title is-3">Etiquetas</h3>
<div class="columns"> <div class="columns">
<div class="column"> <div class="column">
<nav class="panel is-link"> <nav class="panel is-link">
<p class="panel-heading"><i class="far fa-file"></i> Busqueda de códigos</p> <p class="panel-heading"><i class="far fa-search"></i> Busqueda de códigos</p>
<form action="/barcodes" method="post"> <form action="/barcodes" method="post">
<div class="panel-block"> <div class="panel-block">
<div class="field"> <div class="field">

View File

@ -29,26 +29,15 @@
<a class="navbar-item" href="#"></a> <a class="navbar-item" href="#"></a>
<div id="navbarBasicExample" class="navbar-menu"> <div id="navbarBasicExample" class="navbar-menu">
<div class="navbar-start"> <div class="navbar-start">
<div class="navbar-item has-dropdown is-hoverable"> <a href="/" class="navbar-item">
<a class="navbar-link"> Panel Inicio
Etiquetas Leídas
</a> </a>
<div class="navbar-dropdown"> <a href="/barcodes" class="navbar-item">
<a class="navbar-item"> Etiquetas leídas
Consultar
</a> </a>
</div> <a href="/bundle" class="navbar-item">
</div>
<div class="navbar-item has-dropdown is-hoverable">
<a class="navbar-link">
Paquetes Paquetes
</a> </a>
<div class="navbar-dropdown">
<a class="navbar-item">
Consultar
</a>
</div>
</div>
<div class="navbar-item has-dropdown is-hoverable"> <div class="navbar-item has-dropdown is-hoverable">
<a class="navbar-link"> <a class="navbar-link">
Datos Producción Datos Producción
@ -69,7 +58,7 @@
<a href="/normas" class="navbar-item">Normas</a> <a href="/normas" class="navbar-item">Normas</a>
</div> </div>
</div> </div>
<a class="navbar-item"> <a href="/labels" class="navbar-item">
Etiquetas Etiquetas
</a> </a>
</div> </div>

View File

@ -4,11 +4,11 @@
<div class="container is-fluid"> <div class="container is-fluid">
<hr> <hr>
<h3 class="title is-3">Orden corte placa</h3> <h3 class="title is-3"><i class="fas fa-pencil-ruler" aria-hidden="true"></i> Orden corte placa</h3>
<div class="columns"> <div class="columns">
<div class="column"> <div class="column">
<nav class="panel is-link"> <nav class="panel is-link">
<p class="panel-heading"><i class="fas fa-pencil-ruler" aria-hidden="true"></i> Orden de corte placa</p> <p class="panel-heading"><i class="fas fa-search" aria-hidden="true"></i> Orden de corte placa</p>
<div class="panel-block"> <div class="panel-block">
</div> </div>
</nav> </nav>

View File

@ -3,43 +3,12 @@
{{define "body"}} {{define "body"}}
<div class="container is-fluid"> <div class="container is-fluid">
<hr>
<h3 class="title is-3"> <i class="fas fa-box"></i> Paquetes</h3>
<div class="columns"> <div class="columns">
<div class="column is-one-fifth">
<aside class="menu">
<p class="menu-label">Panel</p>
<ul class="menu-list">
<li><a href="/">Inicio</a></li>
</ul>
<p class="menu-label">Etiquetas leídas</p>
<ul class="menu-list">
<li><a href="/barcodes">Consultar</a></li>
</ul>
<p class="menu-label">Paquetes</p>
<ul class="menu-list">
<li><a href="/bundle">Consultar</a></li>
</ul>
<p class="menu-label">Datos de fabricación</p>
<ul class="menu-list">
<li><a href="/po">Orden de producción</a></li>
<li><a href="/co">Orden de cliente</a></li>
<li><a href="/bcp">Orden de corte placa</a></li>
<li><a href="/lcp">Orden de corte layer</a></li>
<li><a href="/hbcp">Hoja BCP</a></li>
</ul>
<p class="menu-label">Calidad</p>
<ul class="menu-list">
<li><a href="/standards">Normas</a></li>
</ul>
<p class="menu-label">Etiquetas</p>
<ul class="menu-list">
<li><a href="/labels">Ultimas etiquetas</a></li>
</ul>
</aside>
</div>
<div class="column"> <div class="column">
<nav class="panel is-link"> <nav class="panel is-link">
<p class="panel-heading"><i class="fas fa-box" aria-hidden="true"></i> Busqueda Paquetes</p> <p class="panel-heading"><i class="fas fa-search" aria-hidden="true"></i> Busqueda Paquetes</p>
<form action="/bundle" method="post"> <form action="/bundle" method="post">
<div class="panel-block"> <div class="panel-block">
<div class="field"> <div class="field">
@ -109,7 +78,7 @@
{{ if .}} {{ if .}}
<div class="column"> <div class="column">
<nav class="panel is-link"> <nav class="panel is-link">
<p class="panel-heading"><i class="fas fa-box" aria-hidden="true"></i> Listado Paquetes</p> <p class="panel-heading"><i class="fas fa-file" aria-hidden="true"></i> Listado Paquetes</p>
<div class="panel-block"> <div class="panel-block">
<table class="table"> <table class="table">
<thead> <thead>
@ -155,9 +124,21 @@
<td>{{ .SeccionTipo }}</td> <td>{{ .SeccionTipo }}</td>
<td>{{ .PaquetePeso }}</td> <td>{{ .PaquetePeso }}</td>
<td>{{ .FormatDesvio }}</td> <td>{{ .FormatDesvio }}</td>
<td>{{if .L3Sended }} Sí {{ else }} No {{ end }}</td> {{if .Confirmed }}
<td>{{if .Confirmed }} Sí {{ else }} No {{ end }}</td> <td class="has-background-primary has-text-white"></td>
<td>{{if .SAP }} Sí {{ else }} No {{ end }}</td> {{ else }}
<td class="has-background-danger has-text-white">No</td>
{{ end }}
{{if .L3Sended }}
<td class="has-background-primary has-text-white"></td>
{{ else }}
<td class="has-background-danger has-text-white">No</td>
{{ end }}
{{if .SAP }}
<td class="has-background-primary has-text-white"></td>
{{ else }}
<td class="has-background-danger has-text-white">No</td>
{{ end }}
<td>{{ .FormatCreatedAt }}</td> <td>{{ .FormatCreatedAt }}</td>
</tr> </tr>
{{ end }} {{ end }}

View File

@ -4,11 +4,11 @@
<div class="container is-fluid"> <div class="container is-fluid">
<hr> <hr>
<h3 class="title is-3">Orden cliente</h3> <h3 class="title is-3"><i class="fas fa-user-edit" aria-hidden="true"></i> Orden cliente</h3>
<div class="columns"> <div class="columns">
<div class="column"> <div class="column">
<nav class="panel is-link"> <nav class="panel is-link">
<p class="panel-heading"><i class="fas fa-user-edit" aria-hidden="true"></i> Orden de cliente</p> <p class="panel-heading"><i class="fas fa-search" aria-hidden="true"></i> Orden de cliente</p>
<div class="panel-block"> <div class="panel-block">
</div> </div>
</nav> </nav>

View File

@ -36,7 +36,7 @@
</div> </div>
<div class="column is-one-quarter"> <div class="column is-one-quarter">
<nav class="panel is-link"> <nav class="panel is-link">
<p class="panel-heading"><i class="fas fa-barcode"></i> Etiquetas leídas</p> <p class="panel-heading"><i class="fas fa-barcode"></i> Etiquetas leídas ATA12</p>
<div class="panel-block"> <div class="panel-block">
<table class="table"> <table class="table">
<thead> <thead>
@ -64,10 +64,10 @@
</div> </div>
</nav> </nav>
</div> </div>
{{ if .Bundles }} {{ if .BundlesATA12 }}
<div class="column"> <div class="column">
<nav class="panel is-link"> <nav class="panel is-link">
<p class="panel-heading"><i class="fas fa-box"></i> Paquetes</p> <p class="panel-heading"><i class="fas fa-box"></i> Paquetes ATA12</p>
<div class="panel-block"> <div class="panel-block">
<table class="table"> <table class="table">
<thead> <thead>
@ -103,7 +103,7 @@
</tr> </tr>
</tfoot> </tfoot>
<tbody> <tbody>
{{ range .Bundles }} {{ range .BundlesATA12 }}
<tr> <tr>
<td><a href="">{{ .Nromatricula }}</a></td> <td><a href="">{{ .Nromatricula }}</a></td>
<td><a href="">{{ .Po }}</a></td> <td><a href="">{{ .Po }}</a></td>
@ -113,9 +113,21 @@
<td>{{ .SeccionTipo }}</td> <td>{{ .SeccionTipo }}</td>
<td>{{ .PaquetePeso }}</td> <td>{{ .PaquetePeso }}</td>
<td>{{ .FormatDesvio }}</td> <td>{{ .FormatDesvio }}</td>
<td>{{if .L3Sended }} Sí {{ else }} No {{ end }}</td> {{if .Confirmed }}
<td>{{if .Confirmed }} Sí {{ else }} No {{ end }}</td> <td class="has-background-primary has-text-white"></td>
<td>{{if .SAP }} Sí {{ else }} No {{ end }}</td> {{ else }}
<td class="has-background-danger has-text-white">No</td>
{{ end }}
{{if .L3Sended }}
<td class="has-background-primary has-text-white"></td>
{{ else }}
<td class="has-background-danger has-text-white">No</td>
{{ end }}
{{if .SAP }}
<td class="has-background-primary has-text-white"></td>
{{ else }}
<td class="has-background-danger has-text-white">No</td>
{{ end }}
<td>{{ .FormatCreatedAt }}</td> <td>{{ .FormatCreatedAt }}</td>
</tr> </tr>
{{ end }} {{ end }}

View File

@ -3,40 +3,9 @@
{{define "body"}} {{define "body"}}
<div class="container is-fluid"> <div class="container is-fluid">
<hr>
<h3 class="title is-3">Últimas etiquetas impresas</h3>
<div class="columns"> <div class="columns">
<div class="column is-one-fifth">
<aside class="menu">
<p class="menu-label">Panel</p>
<ul class="menu-list">
<li><a href="/">Inicio</a></li>
</ul>
<p class="menu-label">Etiquetas leídas</p>
<ul class="menu-list">
<li><a href="/barcodes">Consultar</a></li>
</ul>
<p class="menu-label">Paquetes</p>
<ul class="menu-list">
<li><a href="/bundle">Consultar</a></li>
</ul>
<p class="menu-label">Datos de fabricación</p>
<ul class="menu-list">
<li><a href="/po">Orden de producción</a></li>
<li><a href="/co">Orden de cliente</a></li>
<li><a href="/bcp">Orden de corte placa</a></li>
<li><a href="/lcp">Orden de corte layer</a></li>
<li><a href="/hbcp">Hoja BCP</a></li>
</ul>
<p class="menu-label">Calidad</p>
<ul class="menu-list">
<li><a href="/standards">Normas</a></li>
</ul>
<p class="menu-label">Etiquetas</p>
<ul class="menu-list">
<li><a href="/labels">Ultimas etiquetas</a></li>
</ul>
</aside>
</div>
<div class="column is-three-fifths"> <div class="column is-three-fifths">
<nav class="panel is-link"> <nav class="panel is-link">
<p class="panel-heading"><i class="fas fa-barcode" aria-hidden="true"></i> Evacuaciones 12</p> <p class="panel-heading"><i class="fas fa-barcode" aria-hidden="true"></i> Evacuaciones 12</p>

View File

@ -4,11 +4,11 @@
<div class="container is-fluid"> <div class="container is-fluid">
<hr> <hr>
<h3 class="title is-3">Ordenes de corte layer</h3> <h3 class="title is-3"><i class="fas fa-pencil-ruler" aria-hidden="true"></i> Ordenes de corte layer</h3>
<div class="columns"> <div class="columns">
<div class="column"> <div class="column">
<nav class="panel is-link"> <nav class="panel is-link">
<p class="panel-heading"><i class="fas fa-pencil-ruler" aria-hidden="true"></i> Orden de corte layer</p> <p class="panel-heading"><i class="fas fa-search" aria-hidden="true"></i> Orden de corte layer</p>
<div class="panel-block"> <div class="panel-block">
</div> </div>
</nav> </nav>

View File

@ -4,11 +4,11 @@
<div class="container is-fluid"> <div class="container is-fluid">
<hr> <hr>
<h3 class="title is-3">Orden fabricación</h3> <h3 class="title is-3"><i class="fas fa-industry" aria-hidden="true"></i> Orden fabricación</h3>
<div class="columns"> <div class="columns">
<div class="column"> <div class="column">
<nav class="panel is-link"> <nav class="panel is-link">
<p class="panel-heading"><i class="fas fa-industry" aria-hidden="true"></i> Orden de producción</p> <p class="panel-heading"><i class="fas fa-search" aria-hidden="true"></i> Orden de producción</p>
<div class="panel-block"> <div class="panel-block">
</div> </div>
</nav> </nav>

View File

@ -85,5 +85,5 @@ func (b *BundleData) FormatSerie() string {
} }
func (b *BundleData) FormatCreatedAt() string { func (b *BundleData) FormatCreatedAt() string {
return b.CreatedAt.Format("02/01/2006 15:04:03") return b.CreatedAt.Format("02/01/2006 15:04:05")
} }