80 lines
2.0 KiB
SQL
80 lines
2.0 KiB
SQL
DELIMITER $$
|
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`cobro`(IN datFEC DATE
|
|
, IN idCLI INT
|
|
, IN dblIMPORTE DOUBLE
|
|
, IN idCAJA INT
|
|
, IN idPAYMET INT
|
|
, IN strCONCEPTO VARCHAR(40)
|
|
, IN idEMP INT
|
|
, IN idWH INT
|
|
, IN idTRABAJADOR INT)
|
|
BEGIN
|
|
|
|
DECLARE bolCASH BOOLEAN;
|
|
DECLARE cuenta_banco BIGINT;
|
|
DECLARE cuenta_cliente BIGINT;
|
|
DECLARE max_asien INT;
|
|
-- XDIARIO
|
|
-- No se asientan los cobros directamente, salvo en el caso de las cajas de CASH
|
|
SELECT (at2.code = 'cash') INTO bolCASH FROM Bancos b JOIN vn.accountingType at2 ON at2.id = b.cash WHERE b.Id_Banco = idCAJA;
|
|
IF bolCASH THEN
|
|
SELECT Cuenta INTO cuenta_banco
|
|
FROM Bancos
|
|
WHERE Id_Banco = idCAJA;
|
|
SELECT Cuenta INTO cuenta_cliente
|
|
FROM Clientes
|
|
WHERE Id_Cliente = idCLI;
|
|
CALL vn.ledger_next(max_asien);
|
|
INSERT INTO vn.XDiario (ASIEN,FECHA,SUBCTA,CONTRA,CONCEPTO,EURODEBE,EUROHABER,empresa_id)
|
|
SELECT max_asien,datFEC,SUBCTA,CONTRA,strCONCEPTO,EURODEBE,EUROHABER,idEMP
|
|
FROM(SELECT cuenta_banco SUBCTA, cuenta_cliente CONTRA, 0 EURODEBE, dblIMPORTE EUROHABER
|
|
UNION ALL
|
|
SELECT cuenta_cliente SUBCTA, cuenta_banco CONTRA, dblIMPORTE EURODEBE, 0 EUROHABER
|
|
) gf;
|
|
END IF;
|
|
|
|
-- CAJERA
|
|
INSERT INTO Cajas(Id_Trabajador,
|
|
Id_Banco,
|
|
Entrada,
|
|
Concepto,
|
|
Cajafecha,
|
|
Serie,
|
|
Partida,
|
|
Numero,
|
|
empresa_id,
|
|
warehouse_id
|
|
)
|
|
VALUES (idTRABAJADOR,
|
|
idCAJA,
|
|
dblIMPORTE,
|
|
strCONCEPTO,
|
|
datFEC,
|
|
'A',
|
|
TRUE,
|
|
idCLI,
|
|
idEMP,
|
|
idWH
|
|
);
|
|
|
|
-- RECIBO
|
|
INSERT INTO Recibos(Entregado,
|
|
Fechacobro,
|
|
Id_Trabajador,
|
|
Id_Banco,
|
|
Id_Cliente,
|
|
Id_Factura,
|
|
empresa_id
|
|
)
|
|
VALUES ( dblIMPORTE,
|
|
datFEC,
|
|
idTRABAJADOR,
|
|
idCAJA,
|
|
idCLI,
|
|
strCONCEPTO,
|
|
idEMP
|
|
);
|
|
|
|
END$$
|
|
DELIMITER ;
|