EJERCICIO, IMPLEMENTACION DE BD bd2luj2018.fdb -Modelo B -los precios en producto no incluyen iva -No se permiten cambios en las claves primarias de ninguna tabla -Atributos derivados: detalle.precio=producto.precio detalle.st=cantidad * precio evento detalle BI calculo precio y st AI BU calculo precio y st AU BD AD (implementado) if cliente.tiva = '1' then --responsable inscripto factura.gra es total gravado sin iva factura.iva1=factura.gra * 0.21 factura.iva2=0 endif if cliente.tiva = '2' then -- c.f. o monotributista factura.gra es total gravado con iva incluido factura.iva1=0 factura.iva2=0 endif factura.monto=gra+nogra+iva1+iva2 factura.gra=sum(detalle.st) de todos los productos gravados factura.nogra=sum(detalle.st) de todos los productos no gravados -En cuanto al iva de los productos: producto.precio es sin iva si cliente es monotributista: detalle.precio incluye el iva -Toda factura comienza con estado 'I' iniciada monto gravado,nograv,iva1,iva2,monto=0 fecha tiene que ser la fecha de hoy evento factura BI estado='I' (implementado) -A medida que se ingresan productos a la factura: -factura debe estar en estado 'I' -se descuenta stock de productos (incluso en negativo) -se calcula detalle.st y el resto de campos derivados de factura evento detalle BI si factura.estado <> "I" -> error si cliente.tiva = 2 -> precio=producto.precio * 1.21 sino precio=producto.precio si cant <= 0 -> cant=1 st=cant*precio AI descuento stock de producto calcular factura BU no permito cambio de PK si factura.estado <> "I" -> error si cant <= 0 -> cant=1 new.precio=old.precio st=cant*precio AU si new.cant <> old.cant -> producto.stock = producto.stock - new.cant + old.cant calcular factura BD si factura.estado <> "I" -> error AD producto.stock = producto.stock + old.cant calcular factura (implementado) -Cuando se finaliza una factura: -factura pasa a estado 'F' finalizada, impresa -sumar al saldo deudor del cliente -Factura con estado 'A','F' no puede ser modificada -Factura con estado 'A' es anulada -devolver stock de producto -param tabla clave-valor no puede repetirse clave UNRO clave para el ultimo numero de factua, los valores son todos caracter -Cuando se inserta una nueva factura, nro = clave UNRO + 1 evento factura BI nro=param(unro)+1 AI param.unro = nro BU no permito cambios en nro AU BD AD (implementado)