wip
This commit is contained in:
parent
fbc6a18b0e
commit
514d412a20
90
TODO
90
TODO
@ -1,56 +1,34 @@
|
||||
Grupo6 string `json:"grupo6"`
|
||||
Po int `json:"po" gorm:"index"`
|
||||
Co int `json:"co"`
|
||||
Colada string `json:"colada"`
|
||||
Calidad string `json:"calidad"`
|
||||
Matnr string `json:"matnr"`
|
||||
Dibujo int `json:"dibujo"`
|
||||
Operador string `json:"operador"`
|
||||
Serie int `json:"serie"`
|
||||
Nromatricula string `gorm:"primaryKey" json:"nromatricula"`
|
||||
NroBulto string `json:"nro_bulto"`
|
||||
EtiquetaDoble string `json:"etiqueta_doble"`
|
||||
Fecha int `json:"fecha"`
|
||||
Turno string `json:"turno"`
|
||||
Observacion1 string `json:"observacion1"`
|
||||
Observacion2 string `json:"observacion2"`
|
||||
Observacion3 string `json:"observacion3"`
|
||||
PaqueteLongitud float64 `json:"paquete_longitud"`
|
||||
PaqueteAncho int `json:"paquete_ancho"`
|
||||
PaqueteAlto float64 `json:"paquete_alto"`
|
||||
PaquetePeso int `json:"paquete_peso"`
|
||||
PaqueteNroSecciones int `json:"paquete_nro_secciones"`
|
||||
PaqueteNroMantos int `json:"paquete_nro_mantos"`
|
||||
PaqueteNroSeccManto int `json:"paquete_nro_secc_manto"`
|
||||
SeccionTipo string `gorm:"index" json:"seccion_tipo"`
|
||||
SeccionLongitud int `json:"seccion_longitud"`
|
||||
SeccionAncho float64 `json:"seccion_ancho"`
|
||||
SeccionAlto float64 `json:"seccion_alto"`
|
||||
Idioma string `json:"idioma"`
|
||||
Destino int `json:"destino"`
|
||||
Hora int `json:"hora"`
|
||||
Horario int `json:"horario"`
|
||||
Inst string `json:"inst"`
|
||||
Tren int `json:"tren"`
|
||||
Normed string `json:"normed"`
|
||||
Norpro string `json:"norpro"`
|
||||
Nortol string `json:"nortol"`
|
||||
Spras string `json:"spras"`
|
||||
Statu int `json:"statu"`
|
||||
Crlf string `json:"crlf"`
|
||||
Maquina int `json:"maquina"`
|
||||
Padre string `json:"padre"`
|
||||
Paqpadre string `json:"paqpadre"`
|
||||
RelevantTime string `json:"relevant_time"`
|
||||
Desvio float64 `json:"desvio"`
|
||||
Pesoteorico float64 `json:"pesoteorico"`
|
||||
PesoteoricoReal float64 `json:"pesoteorico_real"`
|
||||
DesvioTeoricoReal float64 `json:"desvio_teorico_real"`
|
||||
FechaImpresion string `json:"fecha_impresion"`
|
||||
PesoNivel1 float64 `json:"peso_nivel1"`
|
||||
L3Sended bool `json:"l3_sended,omitempty"`
|
||||
Confirmed bool `json:"confirmed,omitempty"`
|
||||
SAP bool `json:"sap,omitempty"`
|
||||
CreatedAt time.Time `gorm:"->;<-:create" json:"createdat,omitempty"`
|
||||
UpdatedAt time.Time `json:"updatedat,omitempty"`
|
||||
DeletedAt gorm.DeletedAt `gorm:"index" json:"deletedat,omitempty"`
|
||||
<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">Últimas etiquetas</a></li>
|
||||
</ul>
|
||||
</aside>
|
||||
</div>
|
||||
</div>
|
@ -37,6 +37,13 @@ func BundleHandler(storage storage.Storager) httprouter.Handle {
|
||||
fechas := r.FormValue("fechas")
|
||||
// loading bed
|
||||
evacuadores := r.FormValue("evacuadores")
|
||||
// checkbox value
|
||||
onoff := r.FormValue("confirmed")
|
||||
// confirmed
|
||||
confirmed := false
|
||||
if onoff == "on" {
|
||||
confirmed = true
|
||||
}
|
||||
// check form values
|
||||
if codigo != "" {
|
||||
// call storager
|
||||
@ -62,7 +69,7 @@ func BundleHandler(storage storage.Storager) httprouter.Handle {
|
||||
return
|
||||
}
|
||||
// call storager
|
||||
data, err := storage.ListBundle(r.Context(), lb, inicio, final)
|
||||
data, err := storage.ListBundle(r.Context(), lb, inicio, final, confirmed)
|
||||
if err != nil {
|
||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||
return
|
||||
|
@ -3,15 +3,42 @@ package handlers
|
||||
import (
|
||||
"net/http"
|
||||
"text/template"
|
||||
"time"
|
||||
|
||||
"git.espin.casa/albert/cml04-falcon-ui/helper"
|
||||
"git.espin.casa/albert/cml04-falcon-ui/storage"
|
||||
"git.espin.casa/albert/cml04-falcon-ui/types"
|
||||
"github.com/julienschmidt/httprouter"
|
||||
)
|
||||
|
||||
func IndexHandler(storage storage.Storager) httprouter.Handle {
|
||||
type PageView struct {
|
||||
Stats *types.Stats
|
||||
Bundles []types.BundleData
|
||||
Barcodes []types.Barcode
|
||||
}
|
||||
return func(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
|
||||
// get current shift dates
|
||||
dates, err := helper.GetShiftDates(time.Now())
|
||||
if err != nil {
|
||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
//
|
||||
bundles, err := storage.ShiftListBundle(r.Context(), dates[0], dates[1])
|
||||
if err != nil {
|
||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
// create view
|
||||
view := &PageView{
|
||||
Stats: &types.Stats{},
|
||||
Bundles: bundles,
|
||||
Barcodes: []types.Barcode{},
|
||||
}
|
||||
|
||||
t, _ := template.ParseFiles("templates/base.html", "templates/index.html")
|
||||
err := t.Execute(w, nil)
|
||||
err = t.Execute(w, view)
|
||||
if err != nil {
|
||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||
return
|
||||
|
@ -1,6 +1,7 @@
|
||||
package helper
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
@ -24,3 +25,27 @@ func Dates(dr string) (start, finish time.Time, err error) {
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func GetShiftDates(inputTime time.Time) ([]time.Time, error) {
|
||||
if inputTime.Hour() >= 6 && inputTime.Hour() < 14 {
|
||||
// First shift: 6 to 14 hours
|
||||
startTime := time.Date(inputTime.Year(), inputTime.Month(), inputTime.Day(), 6, 0, 0, 0, inputTime.Location())
|
||||
endTime := time.Date(inputTime.Year(), inputTime.Month(), inputTime.Day(), 14, 0, 0, 0, inputTime.Location())
|
||||
|
||||
return []time.Time{startTime, endTime}, nil
|
||||
} else if inputTime.Hour() >= 14 && inputTime.Hour() < 22 {
|
||||
// Second shift: 14 to 22 hours
|
||||
startTime := time.Date(inputTime.Year(), inputTime.Month(), inputTime.Day(), 14, 0, 0, 0, inputTime.Location())
|
||||
endTime := time.Date(inputTime.Year(), inputTime.Month(), inputTime.Day(), 22, 0, 0, 0, inputTime.Location())
|
||||
|
||||
return []time.Time{startTime, endTime}, nil
|
||||
} else if inputTime.Hour() >= 22 || inputTime.AddDate(0, 0, 1).Hour() < 6 {
|
||||
// Third shift: 22 hours to 6 next day
|
||||
startTime := time.Date(inputTime.Year(), inputTime.Month(), inputTime.Day(), 22, 0, 0, 0, inputTime.Location())
|
||||
endTime := time.Date(inputTime.AddDate(0, 0, 1).Year(), inputTime.AddDate(0, 0, 1).Month(), inputTime.AddDate(0, 0, 1).Day(), 6, 0, 0, 0, inputTime.Location())
|
||||
|
||||
return []time.Time{startTime, endTime}, nil
|
||||
} else {
|
||||
return nil, fmt.Errorf("el horario de entrada no es válido")
|
||||
}
|
||||
}
|
||||
|
42
helper/helper_test.go
Normal file
42
helper/helper_test.go
Normal file
@ -0,0 +1,42 @@
|
||||
package helper
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
func TestGetShiftDates(t *testing.T) {
|
||||
// First case 1: First shift
|
||||
inputTime := time.Date(2023, 1, 15, 7, 0, 0, 0, time.UTC)
|
||||
expectedStart := time.Date(2023, 1, 15, 6, 0, 0, 0, time.UTC)
|
||||
expectedEnd := time.Date(2023, 1, 15, 14, 0, 0, 0, time.UTC)
|
||||
shifts, err := GetShiftDates(inputTime)
|
||||
if err != nil {
|
||||
t.Errorf("unexpected error GetShiftDates: %v", err)
|
||||
}
|
||||
if shifts[0] != expectedStart || shifts[1] != expectedEnd {
|
||||
t.Errorf("not expected results: got %v, %v; want %v, %v", shifts[0], shifts[1], expectedStart, expectedEnd)
|
||||
}
|
||||
// Second case 1: Second shift
|
||||
inputTime = time.Date(2023, 1, 15, 14, 0, 0, 0, time.UTC)
|
||||
expectedStart = time.Date(2023, 1, 15, 14, 0, 0, 0, time.UTC)
|
||||
expectedEnd = time.Date(2023, 1, 15, 22, 0, 0, 0, time.UTC)
|
||||
shifts, err = GetShiftDates(inputTime)
|
||||
if err != nil {
|
||||
t.Errorf("unexpected error GetShiftDates: %v", err)
|
||||
}
|
||||
if shifts[0] != expectedStart || shifts[1] != expectedEnd {
|
||||
t.Errorf("not expected results: got %v, %v; want %v, %v", shifts[0], shifts[1], expectedStart, expectedEnd)
|
||||
}
|
||||
// Third case 3: Third shift
|
||||
inputTime = time.Date(2023, 1, 15, 23, 0, 0, 0, time.UTC)
|
||||
expectedStart = time.Date(2023, 1, 15, 22, 0, 0, 0, time.UTC)
|
||||
expectedEnd = time.Date(2023, 1, 16, 6, 0, 0, 0, time.UTC)
|
||||
shifts, err = GetShiftDates(inputTime)
|
||||
if err != nil {
|
||||
t.Errorf("unexpected error GetShiftDates: %v", err)
|
||||
}
|
||||
if shifts[0] != expectedStart || shifts[1] != expectedEnd {
|
||||
t.Errorf("not expected results: got %v, %v; want %v, %v", shifts[0], shifts[1], expectedStart, expectedEnd)
|
||||
}
|
||||
}
|
@ -24,6 +24,7 @@ type Storager interface {
|
||||
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)
|
||||
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)
|
||||
}
|
||||
|
||||
type storage struct {
|
||||
@ -31,6 +32,14 @@ type storage struct {
|
||||
mux sync.RWMutex
|
||||
}
|
||||
|
||||
// ShiftListBundle implements Storager.
|
||||
func (s *storage) ShiftListBundle(ctx context.Context, inicio, final time.Time) (bundles []types.BundleData, err error) {
|
||||
if err := s.db.Where("created_at >= ? and created_at < ?", inicio, final).Find(&bundles).WithContext(ctx).Error; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// ListBundle implements Storager.
|
||||
func (s *storage) ListBundle(ctx context.Context, lb types.LoadingBed, inicio time.Time, final time.Time, confirmed bool) (bundles []types.BundleData, err error) {
|
||||
if lb == types.ALL {
|
||||
|
@ -4,38 +4,6 @@
|
||||
|
||||
<div class="container is-fluid">
|
||||
<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">
|
||||
<nav class="panel is-link">
|
||||
<p class="panel-heading"><i class="far fa-file"></i> Busqueda de códigos</p>
|
||||
|
@ -17,13 +17,65 @@
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="notification is-link banner">
|
||||
<!-- <div class="notification is-link banner">
|
||||
<p>FALCON
|
||||
<figure class="image is-64x64">
|
||||
<img src="/assets/img/falcon-transparent-white.png" alt="white falcon" />
|
||||
</figure>
|
||||
</p>
|
||||
</div> -->
|
||||
<nav class="navbar is-link">
|
||||
<div class="navbar-brand">
|
||||
<a class="navbar-item" href="#"></a>
|
||||
<div id="navbarBasicExample" class="navbar-menu">
|
||||
<div class="navbar-start">
|
||||
<div class="navbar-item has-dropdown is-hoverable">
|
||||
<a class="navbar-link">
|
||||
Etiquetas Leídas
|
||||
</a>
|
||||
<div class="navbar-dropdown">
|
||||
<a class="navbar-item">
|
||||
Consultar
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="navbar-item has-dropdown is-hoverable">
|
||||
<a class="navbar-link">
|
||||
Paquetes
|
||||
</a>
|
||||
<div class="navbar-dropdown">
|
||||
<a class="navbar-item">
|
||||
Consultar
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="navbar-item has-dropdown is-hoverable">
|
||||
<a class="navbar-link">
|
||||
Datos Producción
|
||||
</a>
|
||||
<div class="navbar-dropdown">
|
||||
<a href="/po" class="navbar-item">Orden de producción</a>
|
||||
<a href="/co" class="navbar-item">Orden de cliente</a>
|
||||
<a href="/bcp" class="navbar-item">Orden de corte placa</a>
|
||||
<a href="/lcp" class="navbar-item">Orden de corte layer</a>
|
||||
<a href="/hbcp" class="navbar-item">Hoja cortes</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="navbar-item has-dropdown is-hoverable">
|
||||
<a class="navbar-link">
|
||||
Calidad
|
||||
</a>
|
||||
<div class="navbar-dropdown">
|
||||
<a href="/normas" class="navbar-item">Normas</a>
|
||||
</div>
|
||||
</div>
|
||||
<a class="navbar-item">
|
||||
Etiquetas
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
{{ template "body" . }}
|
||||
|
||||
|
@ -3,40 +3,9 @@
|
||||
{{define "body"}}
|
||||
|
||||
<div class="container is-fluid">
|
||||
<hr>
|
||||
<h3 class="title is-3">Orden corte placa</h3>
|
||||
<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">
|
||||
<nav class="panel is-link">
|
||||
<p class="panel-heading"><i class="fas fa-pencil-ruler" aria-hidden="true"></i> Orden de corte placa</p>
|
||||
|
@ -3,40 +3,9 @@
|
||||
{{define "body"}}
|
||||
|
||||
<div class="container is-fluid">
|
||||
<hr>
|
||||
<h3 class="title is-3">Orden cliente</h3>
|
||||
<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">
|
||||
<nav class="panel is-link">
|
||||
<p class="panel-heading"><i class="fas fa-user-edit" aria-hidden="true"></i> Orden de cliente</p>
|
||||
|
@ -3,39 +3,9 @@
|
||||
{{define "body"}}
|
||||
|
||||
<div class="container is-fluid">
|
||||
<hr>
|
||||
<h3 class="title is-3">Hoja cortes</h3>
|
||||
<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">
|
||||
<nav class="panel is-link">
|
||||
<p class="panel-heading"><i class="far fa-file"></i> Hoja patrón corte</p>
|
||||
|
@ -3,38 +3,36 @@
|
||||
{{define "body"}}
|
||||
|
||||
<div class="container is-fluid">
|
||||
<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">Últimas etiquetas</a></li>
|
||||
</ul>
|
||||
</aside>
|
||||
<hr>
|
||||
<h3 class="title is-3">Panel principal</h3>
|
||||
<div class="columns is-multiline">
|
||||
<div class="column is-12">
|
||||
<nav class="panel is-link">
|
||||
<p class="panel-heading"><i class="fas fa-chart-line" aria-hidden="true"></i> Estadísticas turno</p>
|
||||
<div class="panel-block">
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<td>Paq.Etiquetados</td>
|
||||
<td>Eti.Leídas</td>
|
||||
<td>Paq.Confirmados</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<!-- <tfoot>
|
||||
<tr>
|
||||
<td>Paq.Etiquetados</td>
|
||||
<td>Eti.Leídas</td>
|
||||
<td>Paq.Confirmados</td>
|
||||
</tr>
|
||||
</tfoot> -->
|
||||
<tbody>
|
||||
<tr>
|
||||
<td></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
<div class="column is-one-quarter">
|
||||
<nav class="panel is-link">
|
||||
@ -65,14 +63,8 @@
|
||||
</table>
|
||||
</div>
|
||||
</nav>
|
||||
<nav class="panel is-link">
|
||||
<p class="panel-heading"><i class="fas fa-chart-line" aria-hidden="true"></i> Estadísticas turno</p>
|
||||
<div class="panel-block">
|
||||
|
||||
<span class="tag is-success is-medium">100</span><p> Etiquetas leídas</p>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
{{ if .Bundles }}
|
||||
<div class="column">
|
||||
<nav class="panel is-link">
|
||||
<p class="panel-heading"><i class="fas fa-box"></i> Paquetes</p>
|
||||
@ -83,15 +75,15 @@
|
||||
<th><abbr title="Unidad de almacén">UA</abbr></th>
|
||||
<th>PO</th>
|
||||
<th>CO</th>
|
||||
<th>Colada</th>
|
||||
<th>Calidad</th>
|
||||
<th>Código SAP</th>
|
||||
<th>Producto</th>
|
||||
<th>Peso</th>
|
||||
<th>Desvío</th>
|
||||
<th>Confirmado</th>
|
||||
<th>Nivel 3</th>
|
||||
<th><abbr title="Paquete confirmado">Conf.</abbr></th>
|
||||
<th><abbr title="Nivel 3">N3</abbr></th>
|
||||
<th>SAP</th>
|
||||
<th>Fecha</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tfoot>
|
||||
@ -99,37 +91,40 @@
|
||||
<th><abbr title="Unidad de almacén">UA</abbr></th>
|
||||
<th>PO</th>
|
||||
<th>CO</th>
|
||||
<th>Colada</th>
|
||||
<th>Calidad</th>
|
||||
<th>Código SAP</th>
|
||||
<th>Producto</th>
|
||||
<th>Peso</th>
|
||||
<th>Desvío</th>
|
||||
<th>Confirmado</th>
|
||||
<th>Nivel 3</th>
|
||||
<th><abbr title="Paquete confirmado">Conf.</abbr></th>
|
||||
<th><abbr title="Nivel 3">N3</abbr></th>
|
||||
<th>SAP</th>
|
||||
<th>Fecha</th>
|
||||
</tr>
|
||||
</tfoot>
|
||||
<tbody>
|
||||
{{ range .Bundles }}
|
||||
<tr>
|
||||
<td><a href="">9402555315</a></td>
|
||||
<td><a href="">131620</a> </td>
|
||||
<td><a href="">40160750</a></td>
|
||||
<td>CE253242</td>
|
||||
<td>S 275 JR +AR</td>
|
||||
<td>BB01-140X12.1</td>
|
||||
<td>HEB140</td>
|
||||
<td>4776</td>
|
||||
<td>-2.40</td>
|
||||
<td>No</td>
|
||||
<td>No</td>
|
||||
<td>No</td>
|
||||
<td><a href="">{{ .Nromatricula }}</a></td>
|
||||
<td><a href="">{{ .Po }}</a></td>
|
||||
<td><a href="">{{ .Co }}</a></td>
|
||||
<td>{{ .Calidad }}</td>
|
||||
<td>{{ .Matnr }}</td>
|
||||
<td>{{ .SeccionTipo }}</td>
|
||||
<td>{{ .PaquetePeso }}</td>
|
||||
<td>{{ .FormatDesvio }}</td>
|
||||
<td>{{if .L3Sended }} Sí {{ else }} No {{ end }}</td>
|
||||
<td>{{if .Confirmed }} Sí {{ else }} No {{ end }}</td>
|
||||
<td>{{if .SAP }} Sí {{ else }} No {{ end }}</td>
|
||||
<td>{{ .FormatCreatedAt }}</td>
|
||||
</tr>
|
||||
{{ end }}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
@ -3,40 +3,9 @@
|
||||
{{define "body"}}
|
||||
|
||||
<div class="container is-fluid">
|
||||
<hr>
|
||||
<h3 class="title is-3">Ordenes de corte layer</h3>
|
||||
<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">
|
||||
<nav class="panel is-link">
|
||||
<p class="panel-heading"><i class="fas fa-pencil-ruler" aria-hidden="true"></i> Orden de corte layer</p>
|
||||
|
@ -3,40 +3,9 @@
|
||||
{{define "body"}}
|
||||
|
||||
<div class="container is-fluid">
|
||||
<hr>
|
||||
<h3 class="title is-3">Orden fabricación</h3>
|
||||
<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">
|
||||
<nav class="panel is-link">
|
||||
<p class="panel-heading"><i class="fas fa-industry" aria-hidden="true"></i> Orden de producción</p>
|
||||
|
20
types/stats.go
Normal file
20
types/stats.go
Normal file
@ -0,0 +1,20 @@
|
||||
package types
|
||||
|
||||
import "time"
|
||||
|
||||
type Stats struct {
|
||||
PaquetesEtiquetados int
|
||||
EtiquetasLeidas int
|
||||
PaquetesConfirmados int
|
||||
PaquetesPrimeras int
|
||||
ToneladasPrimeras float64
|
||||
PaquetesSegundas int
|
||||
ToneladasSegundas float64
|
||||
PaquetesPendientes int
|
||||
ToneladasPendientes float64
|
||||
PaquetesCortas int
|
||||
ToneladasCortas float64
|
||||
DesvioPromedio float64
|
||||
FechaInicio time.Time
|
||||
FechaFinal time.Time
|
||||
}
|
Loading…
Reference in New Issue
Block a user