• No results found

SOLUTION ALGORITHM

CHAPTER FOUR

SOLUTION ALGORITHM

Índice Técnico

Índice Página

1.01 Introducción………82 1.02 Objetivos………...82

2.Contenido………83 2.01. Script De La Base De Datos………..83 3.Procedimientos………91 3.01. Procedure De Insertar Propuestas………..91 3.02. Procedure De Insertar Detalle De La Propuesta………..…..92 3.03. Procedure de Ingresar Materiales Para la Realizacion De un Trabajo de la Propuesta………93 3.04. Procedure De Insertar Gastos ………...94 3.05. Procedure para Creacion de Contratos………..95 3.06. Procedure Para Registrar Gastos Correspondientes Al Contrato………..96 3.07. Procedure Ingreso De Materiales Al Contrato O A La Bodega………97 3.08. Procedure de Egresos de Materiales al Contrato o Bodega………..99 3.09. Procedure de Registro de Datos en Kardex……….100 4.Vista de los Contratos………102 5.Código del Aplicativo………103 5.01. Diccionario De Datos………..165

Manual Técnico

1.01 Introducción

Este manual permitirá a los usuarios de sistemas para solucionar algún problema que presente el sistema, base de datos, usuarios, contraseñas, establecer permisos.

1.02 Objetivos

Realizar cambios de acuerdo a los parámetros del sistema que crea pertinentes para el buen manejo del aplicativo en la empresa.

2. Contenido

2.01. Script De La Base De Datos

Create database db_costos; Use db_costos;

/* Table: CCM_TBL_AUDITORIA */

create table CCM_TBL_AUDITORIA (

COD_AUD int not null auto_increment, COD_PER varchar(25), COD_SEC int, REGISTRO varchar(25), SQL_ANTERIOR varchar(1000), SQL_NUEVO varchar(1000), FECHA datetime, primary key (COD_AUD)

);

/* Table: CCM_TBL_CONTRATO*/

create table CCM_TBL_CONTRATO (

COD_CONTRA varchar(25) not null, COD_PROP varchar(25), FINI_CONTRA date, FFIN_CONTRA date, PGA_CONTRA varchar(10), PGA_VENDEDOR varchar(10), NFAC_CONTRA varchar(25), ESTADO_CONTRA varchar(2), EST_CONTRA bool, primary key (COD_CONTRA)

/* Table: CCM_TBL_DETALLE_KARDEX */

create table CCM_TBL_DETALLE_KARDEX (

COD_DKAR int not null auto_increment, COD_MPRI varchar(25), DES_DKAR varchar(100), NFAC_DKAR varchar(25), ING_CANT int, ING_PVP decimal(15,2), ING_TOT decimal(15,2), EGR_CANT int, EGR_PVP decimal(15,2), EGR_TOT decimal(15,2), SAL_CANT int, SAL_PVP decimal(15,2), SAL_TOT decimal(15,2), primary key (COD_DKAR) );

/* Table: CCM_TBL_DETALLE_PROPUESTA */

create table CCM_TBL_DETALLE_PROPUESTA (

COD_DPRO int not null auto_increment, COD_PRO varchar(25),

COD_PROP varchar(25), CANT_DPRO int,

PVP_MO decimal(15,2), primary key (COD_DPRO)

/* Table: CCM_TBL_GASTOS_CONTRATO */

create table CCM_TBL_GASTOS_CONTRATO (

COD_GCON int not null auto_increment, COD_CONTRA varchar(25),

DES_GCON varchar(200), CANT_GCON int,

PVP_GCON decimal(15,2), NDOC_GCON varchar(25), primary key (COD_GCON) );

/* Table: CCM_TBL_GASTOS_PROPUESTA*/

create table CCM_TBL_GASTOS_PROPUESTA (

COD_GPRO int not null auto_increment, COD_PROP varchar(25),

DES_GPRO varchar(250), CANT_GPRO int,

PVP_GPRO decimal(12,2), primary key (COD_GPRO)

);

/* Table: CCM_TBL_INGRESOS_EGRESOS */

create table CCM_TBL_INGRESOS_EGRESOS (

COD_IE int not null auto_increment, COD_MPRI varchar(25),

COD_CONTRA varchar(25), CANT_IE int,

primary key (COD_IE) );

/* Table: CCM_TBL_MATERIAL*/

create table CCM_TBL_MATERIAL (

COD_MAT int not null auto_increment, COD_MPRI varchar(25),

COD_DPRO int, CANT_MPRO int,

PVP_MAT decimal(15,2), primary key (COD_MAT)

);

/* Table: CCM_TBL_MATERIA_PRIMA*/

create table CCM_TBL_MATERIA_PRIMA (

COD_MPRI varchar(25) not null, DES_MPRI varchar(250), CANT_PRO int,

EST_MPRI bool, primary key (COD_MPRI) );

/* Table: CCM_TBL_MENU */

create table CCM_TBL_MENU (

COD_MENU varchar(25) not null, NOM_MENU varchar(100),

URL_MENU varchar(250), PAD_MENU varchar(25),

primary key (COD_MENU) );

/* Table: CCM_TBL_PERSONAL */

create table CCM_TBL_PERSONAL (

COD_PER varchar(25) not null, COD_ROLES varchar(25), NOM_PER varchar(100), APE_PER varchar(100), CI_PER varchar(20), DIR_PER varchar(250), TEL_PER varchar(15), CEL_PER varchar(15), EST_PER bool, LOGO_PER varchar(250), USU_PER varchar(150), PASS_PER varchar(250), CPASS_PER varchar(2), MAIL_PER varchar(250), primary key (COD_PER)

);

/* Table: CCM_TBL_PRIVILEGIOS*/

create table CCM_TBL_PRIVILEGIOS (

COD_PRIV int not null auto_increment, COD_ROLES varchar(25),

COD_MENU varchar(25), INS_PRIV bool,

CON_PRIV bool, MOD_PRIV bool,

EST_PRIV bool, primary key (COD_PRIV) );

/* Table: CCM_TBL_PRODUCTO */

create table CCM_TBL_PRODUCTO (

COD_PRO varchar(25) not null, DES_PRO varchar(100), TIEMPO int,

EST_PRO bool, primary key (COD_PRO) );

/* Table: CCM_TBL_PROPUESTA */

create table CCM_TBL_PROPUESTA (

COD_PROP varchar(25) not null, COD_PER varchar(25), COD_CERCOP varchar(25), COSTO_PROP decimal(20,2), POR_GANA int, ESTADO_PROP varchar(2), EST_PROP bool, primary key (COD_PROP) );

/* Table: CCM_TBL_ROLES */

create table CCM_TBL_ROLES(

COD_ROLES varchar(25) not null, DES_ROLES varchar(100),

/* Table: CCM_TBL_SECUENCIAL */

create table CCM_TBL_SECUENCIAL

( COD_SEC int not null auto_increment, TABLA varchar(100),

CAR_SEC varchar(5), NOM_SEC int,

primary key (COD_SEC));

alter table CCM_TBL_AUDITORIA add constraint

FK_CCM_TBL_PERSONAL_A_CCM_TBL_AUDITORIA foreign key (COD_PER)

references CCM_TBL_PERSONAL (COD_PER) on delete restrict on update restrict;

alter table CCM_TBL_AUDITORIA add constraint

FK_CCM_TBL_SECUENCIAL_A_CCM_TBL_AUDITORIA foreign key (COD_SEC)

references CCM_TBL_SECUENCIAL (COD_SEC) on delete restrict on update restrict;

alter table CCM_TBL_CONTRATO add constraint

FK_CCM_TBL_PROPUESTA_A_CCM_TBL_CONTRATO foreign key (COD_PROP)

references CCM_TBL_PROPUESTA (COD_PROP) on delete restrict on update restrict;

alter table CCM_TBL_DETALLE_KARDEX add constraint

FK_CCM_TBL_MATERIA_PRIMA_CCM_TBL_DETALLE_CARDEX foreign key (COD_MPRI)

references CCM_TBL_MATERIA_PRIMA (COD_MPRI) on delete restrict on update restrict;

alter table CCM_TBL_DETALLE_PROPUESTA add constraint

FK_CCM_TBL_PRODUCTO_CCM_TBL_DETALLE_PROPUESTA foreign key (COD_PRO)

references CCM_TBL_PRODUCTO (COD_PRO) on delete restrict on update restrict;

alter table CCM_TBL_DETALLE_PROPUESTA add constraint

FK_CCM_TBL_PROPUESTA_CCM_TBL_DETALLE_PROPUESTA foreign key (COD_PROP)

restrict;

alter table CCM_TBL_GASTOS_CONTRATO add constraint

FK_CCM_TBL_CONTRATO_A_CCM_TBL_GASTOS_CONTRATO foreign key (COD_CONTRA)

references CCM_TBL_CONTRATO (COD_CONTRA) on delete restrict on update restrict;

alter table CCM_TBL_GASTOS_PROPUESTA add constraint

FK_CCM_TBL_PROPUESTA_A_CCM_TBL_GASTOS_PROPUESTA foreign key (COD_PROP)

references CCM_TBL_PROPUESTA (COD_PROP) on delete restrict on update restrict;

alter table CCM_TBL_INGRESOS_EGRESOS add constraint

FK_CCM_TBL_CONTRATO_A_CCM_TBL_INGRESOS_EGRESOS foreign key (COD_CONTRA)

references CCM_TBL_CONTRATO (COD_CONTRA) on delete restrict on update restrict;

alter table CCM_TBL_INGRESOS_EGRESOS add constraint

FK_CCM_TBL_MATERIA_PRIMA_A_CCM_TBL_INGRESOS_EGRESOS foreign key (COD_MPRI)

references CCM_TBL_MATERIA_PRIMA (COD_MPRI) on delete restrict on update restrict;

alter table CCM_TBL_MATERIAL add constraint

FK_CCM_TBL_DETALLE_PROPUESTA_A_CCM_TBL_MATERIAL foreign key (COD_DPRO)

references CCM_TBL_DETALLE_PROPUESTA (COD_DPRO) on delete restrict on update restrict;

alter table CCM_TBL_MATERIAL add constraint

FK_CCM_TBL_MATERIA_PRIMA_A_CCM_TBL_MATERIAL foreign key (COD_MPRI)

references CCM_TBL_MATERIA_PRIMA (COD_MPRI) on delete restrict on update restrict;

alter table CCM_TBL_PERSONAL add constraint

FK_CCM_TBL_ROLES_A_CCM_TBL_PERSONAL foreign key (COD_ROLES) references CCM_TBL_ROLES (COD_ROLES) on delete restrict on update restrict;

alter table CCM_TBL_PRIVILEGIOS add constraint

references CCM_TBL_MENU (COD_MENU) on delete restrict on update restrict;

alter table CCM_TBL_PRIVILEGIOS add constraint

FK_CCM_TBL_ROLES_A_CCM_TBL_PRIVILEGIOS foreign key (COD_ROLES)

references CCM_TBL_ROLES (COD_ROLES) on delete restrict on update restrict;

alter table CCM_TBL_PROPUESTA add constraint

FK_CCM_TBL_PERSONAL_A_CCM_TBL_PROPUESTA foreign key (COD_PER)

references CCM_TBL_PERSONAL (COD_PER) on delete restrict on update restrict;

3.Procedimientos

3.01. Procedure De Insertar Propuestas:

DELIMITER //

CREATE PROCEDURE `Insert_Propuesta`( IN cercop varchar(25), IN porcentaje int, IN estadop varchar(2), IN estado Boolean , In cod_per varchar(25)) BEGIN

DECLARE codigo varchar(25) default ''; DECLARE id int default 1 ;

DECLARE sqlanterior varchar (100) default 'nuevo registro'; DECLARE sqlnuevo varchar(1000)default'';

DECLARE nom_tabla varchar (100) default 'CCM_TBL_PROPUESTA'; DECLARE caracteres varchar (5) default'PROP_';

DECLARE ident int default 0; DECLARE cont int default 0;

=nom_tabla))then

set id=(select NUM_SEC from CCM_TBL_SECUENCIAL where TABLA =nom_tabla);

set cont = 1; end if;

set codigo = CONCAT(caracteres,id) ; insert into CCM_TBL_PROPUESTA(COD_PROP,COD_PER,COD_CERCOP,POR_GANA, ESTADO_PROP,EST_PROP) value(codigo,cod_per,cercop,porcentaje,estadop,estado); set sqlnuevo = CONCAT('"',cod_per,'","',cercop,'","',porcentaje,'","',estadop,'","',estado,'"'); set id=id+1; if (cont = 0)then

insert into CCM_TBL_SECUENCIAL

(TABLA,CAR_SEC,NUM_SEC)value(nom_tabla,caracter,id); else

update CCM_TBL_SECUENCIAL set NUM_SEC=id where TABLA=nom_tabla;

end if;

set ident=(select COD_SEC from CCM_TBL_SECUENCIAL where TABLA =nom_tabla);

insert into CCM_TBL_AUDITORIA

(COD_PER,COD_SEC,REGISTRO,SQL_ANTERIOR,SQL_NUEVO,FECHA)valu e(cod_per,ident,codigo,sqlanterior,sqlnuevo,CURRENT_TIMESTAMP);

select 0 as codigo_msn; END //

DELIMITER ;

3.02. Procedure De Insertar Detalle De La Propuesta

DELIMITER //

CREATE PROCEDURE `Insert_Detalle_Propuesta`( IN propuesta varchar(25),

IN producto varchar(25), IN cantidad int,

in mano_obra decimal(15,2)) BEGIN

DECLARE codigo varchar(25) default ''; DECLARE id int default 1 ;

DECLARE ident int default 0; DECLARE cont int default 0;

if(not exists( select * from CCM_TBL_DETALLE_PROPUESTA where COD_PROP=PROPUESTA and COD_PRO=producto))then

insert into CCM_TBL_DETALLE_PROPUESTA

(COD_PROP,COD_PRO,CANT_DPRO,PVP_MO)value(propuesta,producto,cantid ad,mano_obra); select 0 as codigo_msn; else select 4 as codigo_msn; end if; END // DELIMITER ;

3.03. Procedure de Ingresar Materiales Para la Realizacion De un Trabajo de la Propuesta

DELIMITER //

CREATE PROCEDURE `Insert_Material`( IN d_propuesta int,

IN mprima varchar(25) ) BEGIN

DECLARE cantidad int; DECLARE cantdpro int; DECLARE cantmpri int;

set cantdpro =( select CANT_DPRO from CCM_TBL_DETALLE_PROPUESTA where COD_DPRO=d_propuesta);

set cantmpri =( select CANT_PRO from CCM_TBL_MATERIA_PRIMA where COD_MPRI=mprima); if(cantdpro<=cantmpri)then set cantidad=1; else set cantidad=FLOOR(cantdpro/cantmpri); if(cantdpro>(cantidad*cantmpri))then set cantidad=cantidad+1; end if; end if;

set codigo =( select MAX(COD_DKAR) from CCM_TBL_DETALLE_KARDEX where COD_MPRI=mprima);

set precio=(select SAL_PVP from CCM_TBL_DETALLE_KARDEX where COD_DKAR=codigo);

if(not exists( select * from CCM_TBL_MATERIAL where COD_DPRO=d_propuesta and COD_MPRI=mprima))then

insert into CCM_TBL_MATERIAL

(COD_DPRO,COD_MPRI,CANT_MPRO,PVP_MAT)value(d_propuesta,mprima,c antidad,precio); select 0 as codigo_msn; else select 4 as codigo_msn; end if; END // DELIMITER ;

3.04. Procedure De Insertar Gastos

Deberán tomar encuentra para la realización de la propuesta

CREATE PROCEDURE `Insert_Gastos_Propuesta`( IN propuesta varchar(25), IN descripcion varchar(200), IN cantidad int, IN precio decimal(15,2)) BEGIN insert into CCM_TBL_GASTOS_PROPUESTA(COD_PROP,DES_GPRO,CANT_GPRO,PV P_GPRO) value(propuesta,descripcion,cantidad,precio); select 0 as codigo_msn; END // DELIMITER ;

3.05. Procedure para Creacion de Contratos

DELIMITER //

CREATE PROCEDURE `Insert_Contrato`( IN propuesta varchar(25),

IN cod_per varchar(25)) BEGIN

DECLARE codigo varchar(25) default ''; DECLARE id int default 1 ;

DECLARE sqlanterior varchar (100) default 'nuevo registro'; DECLARE sqlnuevo varchar(1000)default'';

DECLARE nom_tabla varchar (100) default 'CCM_TBL_CONTRATO'; DECLARE caracteres varchar (5) default'CONT_';

DECLARE ident int default 0; DECLARE cont int default 0;

if(not exists( select * from CCM_TBL_CONTRATO where COD_PROP=propuesta))then

=nom_tabla))then

set id=(select NUM_SEC from CCM_TBL_SECUENCIAL where TABLA =nom_tabla);

set cont = 1; end if;

set codigo = CONCAT(caracteres,id) ; insert into CCM_TBL_CONTRATO(

COD_CONTRA, COD_PROP,

ESTADO_CONTRA, EST_CONTRATO)

value(codigo,propuesta,'1',1);

set sqlnuevo = CONCAT('"',propuesta,'"'); set id=id+1;

if (cont = 0)then

insert into CCM_TBL_SECUENCIAL

(TABLA,CAR_SEC,NUM_SEC)value(nom_tabla,caracter,id); else

update CCM_TBL_SECUENCIAL set NUM_SEC=id where TABLA=nom_tabla;

end if;

set ident=(select COD_SEC from CCM_TBL_SECUENCIAL where TABLA =nom_tabla);

insert into CCM_TBL_AUDITORIA

(COD_PER,COD_SEC,REGISTRO,SQL_ANTERIOR,SQL_NUEVO,FECHA)valu e(cod_per,ident,codigo,sqlanterior,sqlnuevo,CURRENT_TIMESTAMP); select 0 as codigo_msn; else select 4 as codigo_msn; end if; END // DELIMITER ;

3.06. Procedure Para Registrar Gastos Correspondientes Al Contrato

DELIMITER //CREATE PROCEDURE `Insert_Egresos_Contrato`(

IN contrato varchar(25), IN descripcion varchar(200), IN cantidad int,

IN precio decimal(15,2), IN documento varchar(25)) BEGIN insert into

CCM_TBL_GASTOS_CONTRATO(COD_CONTRA,DES_GCON,CANT_GCON, PVP_GCON,NDOC_GCON) value(contrato,descripcion,cantidad,precio,documento); select 0 as codigo_msn; END// DELIMITER ;

3.07. Procedure Ingreso De Materiales Al Contrato O A La Bodega

DELIMITER //CREATE PROCEDURE `Insert_Ingresos`(

IN mprima varchar(25), IN cantidad int, IN precio decimal(15,2), IN factura varchar(25), IN tipo int, IN usuario varchar(25)) BEGIN

DECLARE detalle varchar(50); DECLARE sal_cant int;

DECLARE tot decimal(15,2); DECLARE sal_pvp decimal(15,2); DECLARE sal_tot decimal(15,2); set detalle='';

set sal_cant=0; set sal_cant=0;

set sal_cant=(SELECT SAL_CANT FROM CCM_TBL_DETALLE_KARDEX WHERE COD_MPRI = mprima ORDER BY COD_DKAR DESC limit 1); set sal_tot=(SELECT SAL_TOT FROM CCM_TBL_DETALLE_KARDEX WHERE COD_MPRI= mprima ORDER BY COD_DKAR DESC limit 1); set sal_cant=sal_cant+cantidad;

set tot=cantidad*precio; set sal_tot=sal_tot+tot; set sal_pvp=sal_tot/sal_cant; if(tipo=0)then

set detalle='COMPRA SEGUN FACTURA'; insert into CCM_TBL_DETALLE_KARDEX(COD_MPRI,DES_DKAR,NFAC_DKAR,ING_ CANT,ING_PVP,ING_TOT,SAL_CANT,SAL_PVP,SAL_TOT) value(mprima,detalle,factura,cantidad,precio,tot,sal_cant,sal_pvp,sal_tot); select 0 as codigo_msn; else

set detalle='DEVOLUCION DEL CONTRATO';

if(exists (SELECT 1 from CCM_TBL_CONTRATO WHERE COD_CONTRA=factura))then insert into CCM_TBL_DETALLE_KARDEX(COD_MPRI,DES_DKAR,NFAC_DKAR,ING_ CANT,ING_PVP,ING_TOT,SAL_CANT,SAL_PVP,SAL_TOT) value(mprima,detalle,factura,cantidad,precio,tot,sal_cant,sal_pvp,sal_tot); insert into CCM_TBL_INGRESOS_EGRESOS(COD_MPRI,COD_CONTRA,CANT_IE,PVP _IE,TIPO_IE) value(mprima,factura,cantidad,precio,'I'); select 0 as codigo_msn; else select 21 as codigo_msn;

end if; end if;

END // DELIMITER;

3.08. Procedure de Egresos de Materiales al Contrato o Bodega

DELIMITER //

CREATE PROCEDURE `Insert_Egresos`( IN mprima varchar(25), IN cantidad int, IN precio decimal(15,2), IN factura varchar(25), IN tipo int, IN usuario varchar(25)) BEGIN

DECLARE detalle varchar(50); DECLARE sal_cant int;

DECLARE tot decimal(15,2); DECLARE sal_pvp decimal(15,2); DECLARE sal_tot decimal(15,2); set detalle='';

set sal_cant=0;

set sal_cant=(SELECT SAL_CANT FROM CCM_TBL_DETALLE_KARDEX WHERE COD_MPRI=mprima ORDER BY COD_DKAR DESC limit 1); set sal_pvp=(SELECT SAL_PVP FROM CCM_TBL_DETALLE_KARDEX WHERE COD_MPRI=mprima ORDER BY COD_DKAR DESC limit 1); set sal_cant=sal_cant - cantidad;

set sal_tot=sal_tot- tot; set sal_pvp=sal_tot/sal_cant; if(tipo=0)then

set detalle='PRODUCTO PARA LA FACTURA'; insert into CCM_TBL_DETALLE_KARDEX(COD_MPRI,DES_DKAR,NFAC_DKAR,ING_ CANT,ING_PVP,ING_TOT,SAL_CANT,SAL_PVP,SAL_TOT) value(mprima,detalle,factura,cantidad,precio,tot,sal_cant,sal_pvp,sal_tot); select 0 as codigo_msn; else

set detalle='PRODUCTO PARA EL CONTRATO';

if(exists (SELECT 1 from CCM_TBL_CONTRATO WHERE COD_CONTRA=factura))then insert into CCM_TBL_DETALLE_KARDEX(COD_MPRI,DES_DKAR,NFAC_DKAR,ING_ CANT,ING_PVP,ING_TOT,SAL_CANT,SAL_PVP,SAL_TOT) value(mprima,detalle,factura,cantidad,precio,tot,sal_cant,sal_pvp,sal_tot); insert into CCM_TBL_INGRESOS_EGRESOS(COD_MPRI,COD_CONTRA,CANT_IE,PVP _IE,TIPO_IE) value(mprima,factura,cantidad,precio,'E'); select 0 as codigo_msn; else select 21 as codigo_msn; end if; end if; END // DELIMITER ;

DELIMITER //

CREATE PROCEDURE `Insert_Kardex`( IN materia_prima varchar(25), IN descripcion varchar(100), IN factura varchar(25), IN cantidad int, IN precio decimal(15,2), IN tipo varchar(2)) BEGIN

DECLARE total decimal(15,2) default 0; DECLARE codigo int default 0;

DECLARE cant int default 0;

DECLARE pvp decimal(15,2) default 0; DECLARE tot decimal(15,2) default 0;

set total=cantidad*precio;

set codigo = (SELECT max(COD_DKAR) from

CCM_TBL_DETALLE_KARDEX WHERE COD_MPRI= materia_prima); if(codigo>0)then

set cant = (SELECT SAL_CANT from

CCM_TBL_DETALLE_KARDEX WHERE COD_DKAR=codigo); set pvp = (SELECT SAL_PVP from

CCM_TBL_DETALLE_KARDEX WHERE COD_DKAR=codigo); set tot = (SELECT SAL_TOT from

CCM_TBL_DETALLE_KARDEX WHERE COD_DKAR=codigo); end if; if(tipo='IN')then set cant=cant+cantidad; set tot=tot+total; set pvp= tot/cant; insert into CCM_TBL_DETALLE_KARDEX(COD_MPRI,DES_DKAR,NFAC_DKAR,ING_ CANT,ING_PVP,ING_TOT,EGR_CANT,EGR_PVP,EGR_TOT,SAL_CANT,SAL _PVP,SAL_TOT)

t,pvp,tot);

select 0 as codigo_msn; else

set cant=cant-cantidad; set total = cant*pvp; set tot=tot-total; insert into CCM_TBL_DETALLE_KARDEX(COD_MPRI,DES_DKAR,NFAC_DKAR,ING_ CANT,ING_PVP,ING_TOT,EGR_CANT,EGR_PVP,EGR_TOT,SAL_CANT,SAL _PVP,SAL_TOT) value(materia_prima,descripcion,factura,0,0,0,cantidad,pvp,total,cant,pvp,tot) ; select 0 as codigo_msn;

end if; END //DELIMITER ;

4.Vista de los Contratos

CREATE ALGORITHM = UNDEFINED DEFINER = `root`@`localhost` SQL SECURITY DEFINER VIEW `db_costos`.`vista_contratos` AS SELECT `p`.`COD_PER` AS `COD_PER`, `co`.`COD_CONTRA` AS `COD_CONTRA`, `co`.`COD_PROP` AS `COD_PROP`, `pr`.`COD_CERCOP` AS `COD_CERCOP`, `pr`.`ESTADO_PROP` AS `ESTADO_PROP`, `pr`.`EST_PROP` AS `EST_PROP`, `co`.`FINI_CONTRA` AS `FINI_CONTRA`, `co`.`FFIN_CONTRA` AS `FFIN_CONTRA`,

`co`.`PGA_VENDEDOR` AS `PGA_VENDEDOR`, `co`.`NFAC_CONTRA` AS `NFAC_CONTRA`, `co`.`ESTADO_CONTRA` AS `ESTADO_CONTRA`, `co`.`EST_CONTRA` AS `EST_CONTRA` FROM ((`db_costos`.`ccm_tbl_personal` `p`

JOIN `db_costos`.`ccm_tbl_propuesta` `pr` ON ((`p`.`COD_PER` = `pr`.`COD_PER`)))

JOIN `db_costos`.`ccm_tbl_contrato` `co` ON ((`co`.`COD_PROP` = `pr`.`COD_PROP`)))

5.Código del Aplicativo

El codigo se encuentra organizado en una carpeta raíz con 3 sub-carpetas las cuales se llaman Core,Data,Views dentro de las carpetas se encuentran archivos php las cuales son necesarias para el funcionamiento del programa como tal, a continuación se procederá a detallar los archivos que van en cada carpeta

Carpeta Raíz

Dentro de esta carpeta se encuentra un archivo que se llama index.php

index.php

<?php

header('location: Views/index.php') ?>

Carpeta Data

En esta carpeta se encuentran los siguientes archivos

conexion.php

<?php try {

$servidor = 'localhost'; $usuario = 'root';

$db = 'db_costos';

$conexion = new mysqli($servidor, $usuario, $pass, $db);

if ($conexion->connect_errno) { header('Location: ../Views/frm_error.php'); } } catch (Exception $ex) { header('Location: ../Views/frm_error.php');}

?>

Carpeta Core:

Se encuentran los siguientes archivos:

Gastos_Propuesta.php <?php session_start(); include '../data/conexion.php'; if (isset($_POST)) { $codi = "COD"; if (isset($_POST['btn_guardar'])) { $usuario = $_SESSION['PER_ID']; $propuesta = trim($_POST['txtpropuesta']); $detalle = trim($_POST['txtgasto']); $cant = trim($_POST['txtcantidad']); $pvp= trim($_POST['txtprecio']); try {

$consulta = "call Insert_Gastos_Propuesta('" . $propuesta ."','".$detalle."','".$cant."','" . $pvp . "')";

echo $consulta;

$resultados = $conexion->query($consulta); if (isset($resultados)) {

while ($obj = $resultados->fetch_object()) { $cod_error = $obj->codigo_msn;}

}

header('Location: ../views/frm_gastos_propuesta.php?errno=' . $cod_error.'&texto='.$propuesta);

} if (isset($_POST['btn_modificar'])) { $usuario = $_SESSION['PER_ID']; $codi = trim($_POST['txtcodigo']); $propuesta = trim($_POST['txtpropuesta']); $detalle = trim($_POST['txtgasto']); $cant = trim($_POST['txtcantidad']); $pvp= trim($_POST['txtprecio']); try {

$consulta = "call Update_Gastos_Propuesta('".$codi ."','".$detalle."','".$cant."','" . $pvp . "')";

$resultados = $conexion->query($consulta); if (isset($resultados)) {

while ($obj = $resultados->fetch_object()) { $cod_error = $obj->codigo_msn; } }

header('Location: ../views/frm_gastos_propuesta.php?errno=' . $cod_error.'&texto='.$propuesta);

} catch (Exception $ex) { header('Location: ../views/frm_errorp.php');} } if (isset($_POST['btn_eliminar'])) { $usuario = $_SESSION['PER_ID']; $codigo = trim($_POST['txtcodigo']); $propuesta = trim($_POST['txtpropuesta']); try {

$consulta = "call Delete_Gastos_Propuesta('" . $codigo ."');"; $resultados = $conexion->query($consulta);

if (isset($resultados)) {

while ($obj = $resultados->fetch_object()) { $cod_error = $obj->codigo_msn; } }

.$cod_error.'&texto='.$propuesta);

} catch (Exception $ex) { header('Location: ../views/frm_errorp.php'); } } } bodega.php <?php session_start(); include '../data/conexion.php'; if (isset($_POST)) { $codi = "COD"; $cadena = trim($_POST['txtBusqueda']); if (isset($_POST['btn_buscar'])) {

header("location: ../Views/frm_bodega.php?texto=" . $cadena); } if (isset($_POST['btn_ingresos'])) { $usuario = $_SESSION['PER_ID']; $codigo = trim($_POST['txtcodigo']); $cantidad = trim($_POST['txtcantidad']); $pvp = trim($_POST['txtpvp']); $factura = trim($_POST['txtfactura']); $estado = trim($_POST['chkcontrato']); $cod_error = ''; try {

$consulta = "call Insert_Ingresos('" . $codigo ."','".$cantidad."','".$pvp. "','".$factura."','" . $estado . "','" . $usuario . "')";

echo $consulta;

$resultados = $conexion->query($consulta); if (isset($resultados)) {

}

header('Location: ../views/frm_bodega.php?errno=' . $cod_error);

} catch (Exception $ex) { header('Location: ../views/frm_errorp.php'); } } if (isset($_POST['btn_egresos'])) { $usuario = $_SESSION['PER_ID']; $codigo = trim($_POST['txtcodigo']); $cantidad = trim($_POST['txtcantidad']); $pvp = trim($_POST['txtpvp']); $factura = trim($_POST['txtfactura']); $estado = trim($_POST['chkcontrato']); $cod_error = ''; $stock = trim($_POST['stock']); if($stock<$cantidad){ header('Location: ../views/frm_bodega.php?errno=20'); } try {

$consulta = "call Insert_Egresos('" . $codigo ."','".$cantidad."','".$pvp. "','".$factura."','" . $estado . "','" . $usuario . "')";

echo $consulta;

$resultados = $conexion->query($consulta); if (isset($resultados)) {

while ($obj = $resultados->fetch_object()) { $cod_error = $obj->codigo_msn; } }

header('Location: ../views/frm_bodega.php?errno=' . $cod_error);

} catch (Exception $ex) { header('Location: ../views/frm_errorp.php'); } }

}

detalle_propuesta.php

include '../data/conexion.php'; if (isset($_POST)) { $codi = "COD"; if (isset($_POST['btn_guardar'])) { $usuario = $_SESSION['PER_ID']; $propuesta = trim($_POST['txtpropuesta']); $producto = trim($_POST['chkproducto']); $cant = trim($_POST['txtcantidad']); $pvp= trim($_POST['txtprecio']); try {

$consulta = "call Insert_Detalle_Propuesta('" . $propuesta ."','".$producto."','".$cant."','" . $pvp . "')";

echo $consulta;

$resultados = $conexion->query($consulta); if (isset($resultados)) {

while ($obj = $resultados->fetch_object()) { $cod_error = $obj->codigo_msn;}

}

header('Location: ../views/frm_detalle_propuesta.php?errno=' . $cod_error.'&texto='.$propuesta);

} catch (Exception $ex) { header('Location: ../views/frm_errorp.php');} } if (isset($_POST['btn_modificar'])) { $usuario = $_SESSION['PER_ID']; $codi = trim($_POST['txtcodigo']); $propuesta = trim($_POST['txtpropuesta']); $producto = trim($_POST['chkproducto']);

Related documents