GithubHelp home page GithubHelp logo

Comments (3)

ElWazy avatar ElWazy commented on August 19, 2024

Por ahora voy a ver el tema del prestamo de una herramienta. Para ello una estrategia que tengo pensada es ver el flujo solamente por sql, dejandolo funcional por ese lado, para despues utilizarlo mediante php

from pasys-api.

ElWazy avatar ElWazy commented on August 19, 2024

Order

Una pequeña referencia mental para tener en cuenta a la hora de construir el sistema de pedidos y devoluciones

Pedido

Para hacer un pedido se necesita

  • Trabajador
    • Rut
    • Nombre
  • Pañolero
    • Nombre
  • Herramienta
    • Nombre
    • Cantidad a pedir
      • No puede ser mayor al stock_actual
if ( $this->tool->overloadActualStock($amount) ) {
  throw new Exception('La cantidad pedida supera el stock actual');
}
  • Fecha de Pedido
    • NOW() o un date('Y-m-d HH:mm:ss')
  • Deadline de devolución
    • Por defecto debería ser de 1 día de margen
  • Estado: Pedido

Se descuenta la cantidad al stock_actual de la herramienta pedida

$this->tool->discountActualStock($amount);
// $this->actualStock -= $amount;

Por ende se necesitan 2 commands:

Add Pedido

-- Algunos datos son por defecto como la fecha del pedido o se dejan vacios, como la fecha de devolucion real
INSERT INTO order_record (worker_id, panolero_id, tool_id, amount. deadline) VALUES
(:worker, :panolero, :tool, :amount, :deadline)

Discount Stock Actual

-- La decrementación se hace por PHP
UPDATE tool SET stock_actual = :discountedStock WHERE id = :id

Devolucion

Para hacer una devolución se necesita

  • Actualizar:
    • Estado: Devuelto
      • Siempre y cuando se haya devuelto la misma cantidad pedida de la herramienta
// Metodo de Entidad OrderRecord
if ( $amount < $this->amount) {
  throw new Exception('Faltan herramientas por entregar');
}
  • Agregar:
    • La fecha de devolución real
      • Si la fecha de devolución real es mayor que la deadline, significa que hay un atraso
if ( $deliveryDate > $this->deadline ) {
  $this->makeLate();
}

Se le devuelve la cantidad entregada al stock_actual de la herramienta

$this->tool->addActualStock($amount);
// $this->actualStock += $amount;

Por ende se necesitan x commands:

Update Pedido Entregado

UPDATE order_record SET delivery_date = NOW() state_id = 2 WHERE id = :id

Update Pedido Atrasado

UPDATE order_record SET state_id = 3 WHERE id = :id

Increment Stock Actual

-- El incremento se hace por PHP
UPDATE tool SET stock_actual = :addedStock WHERE id = :id

Incognitas

  • ¿Atraso automático?
    • ¿Si no? ¿Se procesa todo al final del turno? ¿Como el cierre de cajas de Gamovi?
  • ¿Se separa el pedido de la devolucion en 2 tablas en la bd?

from pasys-api.

ElWazy avatar ElWazy commented on August 19, 2024

Tamos Readu

from pasys-api.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.