Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,7 @@
|
||||
fgl2p ismncs000.4gl
|
||||
fgl2p msg.4gl
|
||||
fgl2p seg000.4gl
|
||||
fgl2p isprcs006.4gl
|
||||
|
||||
fgl2p -o ismncs000.42r ismncs000.42m isprcs006.42m msg.42m seg000.42m
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
fglform isfmcs006.per
|
||||
fglform isfmmt002.per
|
||||
fglform isfmmt003.per
|
||||
fglform isfmmt005.per
|
||||
fglform isfmmt007.per
|
||||
fglform isfmmt008.per
|
||||
fglform isfmmt013.per
|
||||
fglform isfmmt016.per
|
||||
fglform isfmmt036.per
|
||||
fglform isfmmt056.per
|
||||
fglform isfmrp002.per
|
||||
fglform isfmrp003.per
|
||||
fglform isfmrp008.per
|
||||
fglform isfmrp009.per
|
||||
fglform isfmrp010.per
|
||||
fglform isfmrp011.per
|
||||
fglform isfmrp012.per
|
||||
fglform isfmrp013.per
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
database rayovac
|
||||
screen size 24 by 80
|
||||
{
|
||||
|
||||
Codigo Materia Prima :[a]-[b]-[c ]-[d ] [a1 ] [a2 ]
|
||||
Bodega: [h ]
|
||||
Fecha Inicial:[f1 ] Fecha Final:[f2 ]
|
||||
\g------------------------------------------------------------------------------\g
|
||||
C a n t i d a d
|
||||
Fecha Documento Entrada Salida Balance
|
||||
\g------------------------------------------------------------------------------\g
|
||||
|
||||
|
||||
[d2 ][d1 ][d4 ] [d5 ] [d6 ]
|
||||
[d2 ][d1 ][d4 ] [d5 ] [d6 ]
|
||||
[d2 ][d1 ][d4 ] [d5 ] [d6 ]
|
||||
[d2 ][d1 ][d4 ] [d5 ] [d6 ]
|
||||
[d2 ][d1 ][d4 ] [d5 ] [d6 ]
|
||||
[d2 ][d1 ][d4 ] [d5 ] [d6 ]
|
||||
[d2 ][d1 ][d4 ] [d5 ] [d6 ]
|
||||
[d2 ][d1 ][d4 ] [d5 ] [d6 ]
|
||||
}
|
||||
tables
|
||||
intb00001,
|
||||
intb00002,
|
||||
intb00006
|
||||
attributes
|
||||
a = intb00001.cod_n,autonext;
|
||||
b = intb00001.cod_grupo,autonext;
|
||||
c = intb00001.cod_tipo,autonext;
|
||||
d = intb00001.cod_sec,autonext;
|
||||
a1 = intb00001.descrip_esp,noentry;
|
||||
a2 = intb00001.unidad_med,noentry;
|
||||
h = intb00006.bodega,autonext;
|
||||
f1 = formonly.fech_in type date,format = "dd/mm/yyyy";
|
||||
f2 = formonly.fech_fi type date,format = "dd/mm/yyyy";
|
||||
d1 = intb00006.num_doc;
|
||||
d2 = formonly.fecha type date,format = "dd/mm/yyyy";
|
||||
d4 = formonly.entrada;
|
||||
d5 = formonly.salida;
|
||||
d6 = formonly.balance;
|
||||
|
||||
instructions
|
||||
screen record s_csmov[8] (num_doc,fecha,entrada,salida,balance)
|
||||
delimiters " "
|
||||
end
|
||||
|
||||
@@ -0,0 +1,84 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<ManagedForm databaseName="rayovac" fileVersion="31400" gstVersion="31408" name="ManagedForm" uid="{1b631a68-cf0a-41c4-bedb-7d4c416a7fa8}">
|
||||
<AGSettings>
|
||||
<DynamicProperties version="2"/>
|
||||
</AGSettings>
|
||||
<Record additionalTables="" joinLeft="" joinOperator="" joinRight="" name="Undefined" order="" uid="{0289e5ad-5c63-451f-85aa-54ea2e52d5a3}" where="">
|
||||
<RecordField colName="cod_n" fieldIdRef="0" fieldType="TABLE_COLUMN" name="intb00002.cod_n" sqlTabName="intb00002" sqlType="SMALLINT" table_alias_name="" uid="{dbefe3ec-6fc5-4b23-8eda-c89276a268fe}"/>
|
||||
<RecordField colName="cod_grupo" fieldIdRef="1" fieldType="TABLE_COLUMN" name="intb00002.cod_grupo" sqlTabName="intb00002" sqlType="SMALLINT" table_alias_name="" uid="{6c93a6c4-e3a3-42da-bde5-4c595302b4d9}"/>
|
||||
<RecordField colName="cod_tipo" fieldIdRef="2" fieldType="TABLE_COLUMN" name="intb00002.cod_tipo" sqlTabName="intb00002" sqlType="SMALLINT" table_alias_name="" uid="{f7a00072-8c32-407d-8f9b-b6a11c95d4b0}"/>
|
||||
<RecordField colName="cod_sec" fieldIdRef="3" fieldType="NON_DATABASE" name="cod_sec" sqlTabName="intb00002" sqlType="SMALLINT" table_alias_name="" uid="{53eaf2a2-7e09-4167-be81-8a1270d434cb}"/>
|
||||
<RecordField colName="descrip1" fieldIdRef="15" name="descrip_esp" sqlTabName="formonly" table_alias_name="" uid="{5f792ed3-96eb-45d7-bd0f-632b049ed06a}"/>
|
||||
<RecordField colName="medida" fieldIdRef="17" name="unidad_med" sqlTabName="formonly" table_alias_name="" uid="{60ce36b8-a1db-4996-83e3-b5fd0111476b}"/>
|
||||
<RecordField colName="pto_reorden" fieldIdRef="4" fieldType="TABLE_COLUMN" name="intb00002.pto_reorden" precisionDecimal="10" scaleDecimal="2" sqlTabName="intb00002" sqlType="DECIMAL" table_alias_name="" uid="{ce8c2660-4c23-4f5e-b0bf-18549ab2b3f5}"/>
|
||||
<RecordField colName="existencia" fieldIdRef="5" fieldType="TABLE_COLUMN" name="intb00002.existencia" precisionDecimal="10" scaleDecimal="2" sqlTabName="intb00002" sqlType="DECIMAL" table_alias_name="" uid="{49ccdccc-d149-49f2-a3cd-cd7fe9202795}"/>
|
||||
<RecordField colName="cod_nab" fieldIdRef="6" fieldType="TABLE_COLUMN" name="intb00002.cod_nab" sqlTabName="intb00002" sqlType="CHAR" table_alias_name="" uid="{9b75d0e9-e3f5-42d0-8321-d4027febfa58}"/>
|
||||
<RecordField colName="base" defaultValue="1" fieldIdRef="19" fieldType="TABLE_COLUMN" name="intb00002.base" precisionDecimal="10" scaleDecimal="2" sqlTabName="intb00002" sqlType="DECIMAL" table_alias_name="" uid="{2a457f46-6bbd-4819-9815-16885c5d6264}"/>
|
||||
<RecordField colName="bodega" fieldIdRef="7" fieldType="TABLE_COLUMN" name="intb00002.bodega" sqlTabName="intb00002" sqlType="SMALLINT" table_alias_name="" uid="{628cf333-5c37-47fa-b1a9-c0557f000d08}"/>
|
||||
<RecordField colName="categoria" defaultValue="A" fieldIdRef="8" fieldType="TABLE_COLUMN" name="intb00002.categoria" sqlTabName="intb00002" sqlType="CHAR" table_alias_name="" uid="{3dc8cfe2-919f-43b6-bfc2-45f72fb38473}"/>
|
||||
<RecordField colName="dia_llegada" fieldIdRef="9" fieldType="TABLE_COLUMN" name="intb00002.dia_llegada" sqlTabName="intb00002" sqlType="SMALLINT" table_alias_name="" uid="{ec677a53-51b0-472c-a732-4439dda1e1aa}"/>
|
||||
<RecordField colName="gravamen" fieldIdRef="10" fieldType="TABLE_COLUMN" name="intb00002.gravamen" precisionDecimal="5" scaleDecimal="2" sqlTabName="intb00002" sqlType="DECIMAL" table_alias_name="" uid="{b5aa98f0-be83-4cec-93da-0689a69f2ed5}"/>
|
||||
<RecordField colName="status_t" fieldIdRef="18" fieldType="TABLE_COLUMN" name="intb00002.status_t" sqlTabName="intb00002" sqlType="CHAR" table_alias_name="" uid="{72f20235-1e34-4421-97bc-3b52284e3f01}"/>
|
||||
<RecordField colName="us_crea" fieldIdRef="11" fieldType="TABLE_COLUMN" name="intb00002.us_crea" sqlTabName="intb00002" sqlType="CHAR" table_alias_name="" uid="{80c6cabd-750d-4899-bd12-67e3e69c2999}"/>
|
||||
<RecordField colName="us_mod" fieldIdRef="13" fieldType="TABLE_COLUMN" name="intb00002.us_mod" sqlTabName="intb00002" sqlType="CHAR" table_alias_name="" uid="{4de698eb-1f3d-4057-b453-ba6ad26ae4b2}"/>
|
||||
<RecordField colName="fech_crea" fieldIdRef="12" fieldType="TABLE_COLUMN" name="intb00002.fech_crea" qual1="YEAR" qualFraction="MINUTE" sqlTabName="intb00002" sqlType="DATETIME" table_alias_name="" uid="{6d7c8ff6-0105-43a4-aec9-d343d70e5d0f}"/>
|
||||
<RecordField colName="fech_mod" fieldIdRef="14" fieldType="TABLE_COLUMN" name="intb00002.fech_mod" qual1="YEAR" qualFraction="MINUTE" sqlTabName="intb00002" sqlType="DATETIME" table_alias_name="" uid="{4ce95fa7-2faf-4ab0-9dbd-11655a8a0e41}"/>
|
||||
<RecordField colName="" fieldIdRef="20" name="rowid" sqlTabName="" table_alias_name="" uid="{53ccc4a3-2270-41c0-b84e-38aaceed5f43}"/>
|
||||
</Record>
|
||||
<Form gridHeight="24" gridWidth="80" name="isfmmt002" text="SUMINISTROS">
|
||||
<Grid gridHeight="17" gridWidth="78" name="Grid1" posX="0" posY="1">
|
||||
<Label posX="4" posY="0" text="Codigo"/>
|
||||
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" autoNext="true" colName="cod_n" comment="Digite el codigo de la materia prima" fieldId="0" fieldType="TABLE_COLUMN" gridHeight="1" gridWidth="3" name="intb00002.cod_n" notNull="true" posX="16" posY="0" required="true" sqlTabName="intb00002" sqlType="SMALLINT" tabIndex="1" table_alias_name="" widget="Edit"/>
|
||||
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" autoNext="true" colName="cod_grupo" comment="Digite el codigo de la materia prima" fieldId="1" fieldType="TABLE_COLUMN" gridHeight="1" gridWidth="3" name="intb00002.cod_grupo" notNull="true" posX="20" posY="0" required="true" sqlTabName="intb00002" sqlType="SMALLINT" tabIndex="2" table_alias_name="" widget="Edit"/>
|
||||
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" autoNext="true" colName="cod_tipo" comment="Digite el codigo de la materia prima" fieldId="2" fieldType="TABLE_COLUMN" gridHeight="1" gridWidth="3" name="intb00002.cod_tipo" notNull="true" posX="24" posY="0" required="true" sqlTabName="intb00002" sqlType="SMALLINT" tabIndex="3" table_alias_name="" widget="Edit"/>
|
||||
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" autoNext="false" colName="cod_sec" comment="Digite el codigo de la materia prima" fieldId="3" fieldType="NON_DATABASE" gridHeight="1" gridWidth="4" length="1" name="cod_sec" notNull="false" posX="28" posY="0" required="false" sqlTabName="intb00002" sqlType="SMALLINT" tabIndex="4" table_alias_name="" widget="Edit"/>
|
||||
<Label gridHeight="1" gridWidth="10" name="Label1" posX="38" posY="0" text="ID"/>
|
||||
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" fieldId="20" gridHeight="1" gridWidth="8" name="rowid" noEntry="true" posX="51" posY="0" sqlTabName="" tabIndex="20" table_alias_name="" title="Edit1" widget="Edit"/>
|
||||
<Label posX="1" posY="2" text="Descripcion Espanol"/>
|
||||
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" case="upper" colName="descrip1" fieldId="15" gridHeight="1" gridWidth="46" name="descrip_esp" posX="22" posY="2" scroll="true" sqlTabName="formonly" tabIndex="5" table_alias_name="" widget="Edit"/>
|
||||
<Label posX="1" posY="4" text="Unidad Medida"/>
|
||||
<ComboBox aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" case="upper" colName="medida" fieldId="17" gridHeight="1" gridWidth="12" items="UD, MT2, GLS, LBR, PLG, MT3, 1/4 GL" name="unidad_med" posX="22" posY="4" sqlTabName="formonly" tabIndex="6" table_alias_name="" widget="ComboBox">
|
||||
<Item lstrtext="false" name="UD" text="UD"/>
|
||||
<Item lstrtext="false" name="MT2" text="MT2"/>
|
||||
<Item lstrtext="false" name="GLS" text="GLS"/>
|
||||
<Item lstrtext="false" name="LBR" text="LBR"/>
|
||||
<Item lstrtext="false" name="PLG" text="PLG"/>
|
||||
<Item lstrtext="false" name="MT3" text="MT3"/>
|
||||
<Item lstrtext="false" name="1/4 GL" text="1/4 GL"/>
|
||||
</ComboBox>
|
||||
<Label posX="1" posY="5" text="Punto de reorden"/>
|
||||
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="pto_reorden" comment="Digite el punto de reorden" fieldId="4" fieldType="TABLE_COLUMN" gridHeight="1" gridWidth="12" name="intb00002.pto_reorden" notNull="true" posX="22" posY="5" precisionDecimal="10" required="true" scaleDecimal="2" sqlTabName="intb00002" sqlType="DECIMAL" tabIndex="7" table_alias_name="" widget="Edit"/>
|
||||
<Label posX="1" posY="6" text="Existencia"/>
|
||||
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="existencia" comment="Digite la existencia actual" fieldId="5" fieldType="TABLE_COLUMN" gridHeight="1" gridWidth="12" name="intb00002.existencia" notNull="true" posX="22" posY="6" precisionDecimal="10" required="true" scaleDecimal="2" sqlTabName="intb00002" sqlType="DECIMAL" tabIndex="8" table_alias_name="" widget="Edit"/>
|
||||
<Label gridHeight="1" gridWidth="20" name="Label2" posX="1" posY="7" text="Nomenclatura Arancelaria"/>
|
||||
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="cod_nab" comment="Digite el codigo arancelario" fieldId="6" fieldType="TABLE_COLUMN" gridHeight="1" gridWidth="11" name="intb00002.cod_nab" picture="##.##.##.##" posX="22" posY="7" sqlTabName="intb00002" sqlType="CHAR" tabIndex="9" table_alias_name="" widget="Edit"/>
|
||||
<Label posX="41" posY="7" text="Base Para Precio"/>
|
||||
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" autoNext="true" colName="base" comment="Digite La Cantidad de la base para calculo de su precio" defaultValue="1" fieldId="19" fieldType="TABLE_COLUMN" gridHeight="1" gridWidth="13" name="intb00002.base" posX="59" posY="7" precisionDecimal="10" scaleDecimal="2" sqlTabName="intb00002" sqlType="DECIMAL" tabIndex="10" table_alias_name="" widget="Edit"/>
|
||||
<Label posX="1" posY="8" text="Bodega"/>
|
||||
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="bodega" comment="Digite la bodega" fieldId="7" fieldType="TABLE_COLUMN" gridHeight="1" gridWidth="4" name="intb00002.bodega" posX="22" posY="8" sqlTabName="intb00002" sqlType="SMALLINT" tabIndex="11" table_alias_name="" widget="Edit"/>
|
||||
<Label posX="32" posY="8" text="Categoria"/>
|
||||
<ComboBox aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" case="upper" colName="categoria" comment="Digite A,B,C" defaultValue="A" fieldId="8" fieldType="TABLE_COLUMN" gridHeight="1" gridWidth="6" items="A, B, C" name="intb00002.categoria" posX="45" posY="8" sqlTabName="intb00002" sqlType="CHAR" tabIndex="12" table_alias_name="" widget="ComboBox">
|
||||
<Item lstrtext="false" name="A" text="A"/>
|
||||
<Item lstrtext="false" name="B" text="B"/>
|
||||
<Item lstrtext="false" name="C" text="C"/>
|
||||
</ComboBox>
|
||||
<Label posX="1" posY="9" text="Dia de Llegada"/>
|
||||
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="dia_llegada" comment="Digite el dia de llegada de la materia prima" fieldId="9" fieldType="TABLE_COLUMN" gridHeight="1" gridWidth="3" name="intb00002.dia_llegada" posX="22" posY="9" sqlTabName="intb00002" sqlType="SMALLINT" tabIndex="13" table_alias_name="" widget="Edit"/>
|
||||
<Label posX="33" posY="9" text="Gravamen"/>
|
||||
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" autoNext="true" colName="gravamen" comment="Digite El Porcentaje de Gravamen" fieldId="10" fieldType="TABLE_COLUMN" gridHeight="1" gridWidth="6" name="intb00002.gravamen" posX="45" posY="9" precisionDecimal="5" scaleDecimal="2" sqlTabName="intb00002" sqlType="DECIMAL" tabIndex="14" table_alias_name="" widget="Edit"/>
|
||||
<Label posX="52" posY="9" text="%"/>
|
||||
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="status_t" fieldId="18" fieldType="TABLE_COLUMN" gridHeight="1" gridWidth="1" name="intb00002.status_t" noEntry="true" posX="2" posY="10" sqlTabName="intb00002" sqlType="CHAR" tabIndex="15" table_alias_name="" widget="Edit"/>
|
||||
<Label posX="1" posY="11" text="Usuario creador"/>
|
||||
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="us_crea" fieldId="11" fieldType="TABLE_COLUMN" gridHeight="1" gridWidth="16" name="intb00002.us_crea" noEntry="true" posX="19" posY="11" sqlTabName="intb00002" sqlType="CHAR" tabIndex="16" table_alias_name="" widget="Edit"/>
|
||||
<Label posX="38" posY="11" text="Usuario modificador"/>
|
||||
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="us_mod" fieldId="13" fieldType="TABLE_COLUMN" gridHeight="1" gridWidth="16" name="intb00002.us_mod" noEntry="true" posX="60" posY="11" sqlTabName="intb00002" sqlType="CHAR" tabIndex="17" table_alias_name="" widget="Edit"/>
|
||||
<Label posX="1" posY="12" text="Fecha Creacion"/>
|
||||
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="fech_crea" fieldId="12" fieldType="TABLE_COLUMN" gridHeight="1" gridWidth="16" name="intb00002.fech_crea" noEntry="true" posX="19" posY="12" qual1="YEAR" qualFraction="MINUTE" sqlTabName="intb00002" sqlType="DATETIME" tabIndex="18" table_alias_name="" widget="Edit"/>
|
||||
<Label posX="38" posY="12" text="Fecha Modificacion"/>
|
||||
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="fech_mod" fieldId="14" fieldType="TABLE_COLUMN" gridHeight="1" gridWidth="16" name="intb00002.fech_mod" noEntry="true" posX="60" posY="12" qual1="YEAR" qualFraction="MINUTE" sqlTabName="intb00002" sqlType="DATETIME" tabIndex="19" table_alias_name="" widget="Edit"/>
|
||||
</Grid>
|
||||
</Form>
|
||||
<DiagramLayout>
|
||||
<![CDATA[AAAAAgAAAEwAewAwADIAOAA5AGUANQBhAGQALQA1AGMANgAzAC0ANAA1ADEAZgAtADgANQBhAGEALQA1ADQAZQBhADIAZQA1ADIAZAA1AGEAMwB9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQ==]]>
|
||||
</DiagramLayout>
|
||||
</ManagedForm>
|
||||
@@ -0,0 +1,56 @@
|
||||
database rayovac
|
||||
screen size 24 by 80
|
||||
{
|
||||
Codigo [a][b][c ][e ]
|
||||
|
||||
Descripcion Espanol [d ]
|
||||
Descripcion Ingles [f ]
|
||||
Unidad Medida [k ]
|
||||
Punto de reorden [f004 ]
|
||||
Existencia [f005 ]
|
||||
Nomenclatura Arancelaria [f006 ] Base Para Precio [k1 ]
|
||||
Bodega [l ] Categoria [r]
|
||||
Dia de Llegada [m ] Gravamen [mn ]%
|
||||
[q]
|
||||
Usuario creador [f007 ] Usuario modificador [f009 ]
|
||||
Fecha Creacion [f008 ] Fecha Modificacion [f010 ]
|
||||
}
|
||||
end
|
||||
tables
|
||||
intb00002
|
||||
attributes
|
||||
a = intb00002.cod_n, autonext,
|
||||
comments = "Digite el codigo de la materia prima";
|
||||
b = intb00002.cod_grupo, autonext,
|
||||
comments = "Digite el codigo de la materia prima";
|
||||
c = intb00002.cod_tipo, autonext,
|
||||
comments = "Digite el codigo de la materia prima";
|
||||
e = intb00002.cod_sec,autonext,
|
||||
comments = "Digite el codigo de la materia prima";
|
||||
f004 = intb00002.pto_reorden,
|
||||
comments = "Digite el punto de reorden";
|
||||
f005 = intb00002.existencia,
|
||||
comments = "Digite la existencia actual";
|
||||
f006 = intb00002.cod_nab, picture = "##.##.##.##",
|
||||
comments = "Digite el codigo arancelario";
|
||||
l = intb00002.bodega,
|
||||
comments ="Digite la bodega";
|
||||
r = intb00002.categoria,comments = "Digite A,B,C",
|
||||
upshift;
|
||||
m = intb00002.dia_llegada,
|
||||
comments = "Digite el dia de llegada de la materia prima";
|
||||
mn = intb00002.gravamen,autonext,
|
||||
comments = "Digite El Porcentaje de Gravamen";
|
||||
f007 = intb00002.us_crea, noentry;
|
||||
f008 = intb00002.fech_crea, noentry;
|
||||
f009 = intb00002.us_mod, noentry;
|
||||
f010 = intb00002.fech_mod, noentry;
|
||||
d = formonly.descrip1,upshift;
|
||||
f = formonly.descrip2,upshift;
|
||||
k = formonly.medida,upshift;
|
||||
q = intb00002.status_t,noentry;
|
||||
k1 = intb00002.base,autonext,comments =
|
||||
"Digite La Cantidad de la base para calculo de su precio";
|
||||
instructions
|
||||
delimiters " "
|
||||
end
|
||||
@@ -0,0 +1,39 @@
|
||||
database rayovac
|
||||
screen size 24 by 80
|
||||
{
|
||||
Mes Inicial [f1] [g4 ]
|
||||
Mes Final [f2] [g5 ]
|
||||
Ano [f002]
|
||||
Codigo [a]-[b]-[c ]-[d ][e ] [g ]
|
||||
Costo Estandar [f005 ]
|
||||
[j]
|
||||
|
||||
Usuario Creador [f006 ] Usuario Modificador [f008 ]
|
||||
Fecha Creacion [f007 ] Fecha Modificacion [f009 ]
|
||||
}
|
||||
end
|
||||
tables
|
||||
istb00013,intb00001
|
||||
attributes
|
||||
f1 = istb00013.mes_ini,autonext,
|
||||
comments = "Digite el mes inicial";
|
||||
g4 = formonly.descrip1;
|
||||
f2 = istb00013.mes_fin,autonext,
|
||||
comments = "Digite el mes final";
|
||||
g5 = formonly.descrip2;
|
||||
f002 = istb00013.ano,autonext,comments = "Digite el ano";
|
||||
a = istb00013.cod_n,autonext,comments = "Digite el NIVEL";
|
||||
b = istb00013.cod_grupo,autonext,comments = "Digite el GRUPO";
|
||||
c = istb00013.cod_tipo,autonext,comments = "Digite el TIPO";
|
||||
d = istb00013.cod_sec,autonext,comments = "Digite la SECUENCIA";
|
||||
e = intb00001.descrip_esp,noentry;
|
||||
g = intb00001.unidad_med,noentry;
|
||||
f005 = istb00013.costo_st,comments = "Digite el costo";
|
||||
j = istb00013.status_t,noentry;
|
||||
f006 = istb00013.us_crea,noentry;
|
||||
f007 = istb00013.fech_crea,noentry;
|
||||
f008 = istb00013.us_mod,noentry;
|
||||
f009 = istb00013.fech_mod,noentry;
|
||||
instructions
|
||||
delimiters " "
|
||||
end
|
||||
@@ -0,0 +1,35 @@
|
||||
database rayovac
|
||||
screen size 24 by 80
|
||||
{
|
||||
Codigo del movimiento [f0] Cuenta_1 [f002]
|
||||
Descripcion [f001 ] Cuenta_2 [f003]
|
||||
Status del movimiento [a] Cuenta_3 [f004]
|
||||
[j]
|
||||
|
||||
|
||||
Usuario creador [f005 ] Usuario modificador [f007 ]
|
||||
Fecha creacion [f006 ] Fecha modificacion [f008 ]
|
||||
}
|
||||
end
|
||||
tables
|
||||
intb00005
|
||||
attributes
|
||||
f0 = intb00005.cod_mov, autonext, required,
|
||||
comments = "Digite el codigo del movimiento";
|
||||
f001 = intb00005.descrip_mov, autonext, upshift,
|
||||
comments = "Digite la descripcion del movimiento";
|
||||
a = intb00005.status_mov, required, autonext, include = ("1","2"),
|
||||
comments = "1.- Entradas 2.- Salidas" ;
|
||||
f002 = intb00005.cuenta_1, autonext, required,
|
||||
comments = "Digite el numero de la cuenta";
|
||||
f003 = intb00005.cuenta_2, autonext,required,
|
||||
comments = "Digite el numero de la cuenta";
|
||||
f004 = intb00005.cuenta_3, comments = "Digite el numero de la cuenta";
|
||||
f005 = intb00005.us_crea, noentry;
|
||||
f006 = intb00005.fech_crea, noentry;
|
||||
f007 = intb00005.us_mod, noentry;
|
||||
f008 = intb00005.fech_mod, noentry;
|
||||
j = intb00005.status_t, noentry;
|
||||
instructions
|
||||
delimiters " "
|
||||
end
|
||||
@@ -0,0 +1,28 @@
|
||||
database rayovac
|
||||
screen size 24 by 80
|
||||
{
|
||||
Codigo de la Unidad [a0 ]
|
||||
Descripcion [f000 ]
|
||||
[j]
|
||||
|
||||
|
||||
Usuario Creador [f001 ] Usuario Modificador [f003 ]
|
||||
Fecha Creacion [f002 ] Fecha Modificacion [f004 ]
|
||||
}
|
||||
end
|
||||
tables
|
||||
intb00007
|
||||
attributes
|
||||
a0 = intb00007.codigo_unidad, upshift, autonext,
|
||||
comments="Digite el codigo de la unidad de medida";
|
||||
f000 = intb00007.descripcion, upshift,
|
||||
comments="Digite el nombre de la unidad de medida";
|
||||
f001 = intb00007.us_crea, noentry;
|
||||
f002 = intb00007.fech_crea, noentry;
|
||||
f003 = intb00007.us_mod, noentry;
|
||||
f004 = intb00007.fech_mod, noentry;
|
||||
j = intb00007.status_t, noentry;
|
||||
instructions
|
||||
delimiters " "
|
||||
end
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
database rayovac
|
||||
screen size 24 by 80
|
||||
{
|
||||
Fecha Del Conteo [f1 ]
|
||||
|
||||
Bodega [b1]
|
||||
|
||||
Codigo Suministro [a]-[b]-[c ]-[d ]
|
||||
[k1 ][k2 ]
|
||||
Conteo [f3 ] Existencia S/Movimientos [f4 ]
|
||||
\g-------------------------------------------------------------
|
||||
Diferencia [p1 ]
|
||||
[b2][b3 ]
|
||||
[k20 ]
|
||||
|
||||
}
|
||||
tables
|
||||
intb00001,
|
||||
intb00006
|
||||
intb00002
|
||||
attributes
|
||||
f1 = formonly.fecha type date,reverse,format = "dd/mm/yyyy",
|
||||
comments = "Digite Fecha Del Conteo Fisico";
|
||||
a = intb00001.cod_n,reverse,autonext,required,
|
||||
comments = "Digite NIVEL Codificacion";
|
||||
b = intb00001.cod_grupo,reverse,autonext,required,
|
||||
comments = "Digite GRUPO Codificacion";
|
||||
c = intb00001.cod_tipo,reverse,autonext,required,
|
||||
comments = "Digite TIPO Codificacion";
|
||||
d = intb00001.cod_sec,reverse,autonext,required,
|
||||
comments = "Digite SECUENCIA Codificacion";
|
||||
k1 = formonly.descrip_esp,noentry;
|
||||
k2 = formonly.unidad_med,noentry;
|
||||
b1 = intb00002.bodega,reverse,autonext,required,
|
||||
comments = "Digite BODEGA Materia Prima";
|
||||
f3 = formonly.cantidad,reverse,required,
|
||||
comments = "Digite Cantidad Del Conteo Fisico";
|
||||
f4 = formonly.ex_mov,noentry;
|
||||
b2 = formonly.cod_mov,noentry;
|
||||
b3 = formonly.descrip_mov,noentry;
|
||||
p1 = formonly.diferencia,noentry;
|
||||
k20 = formonly.num_doc;
|
||||
instructions
|
||||
delimiters " "
|
||||
end
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
database rayovac
|
||||
screen size 24 by 80
|
||||
{
|
||||
Mes Inicial [f1] [g4 ]
|
||||
Mes Final [f2] [g5 ]
|
||||
Ano [f002]
|
||||
Codigo [a]-[b]-[c ]-[d ][e ] [g ]
|
||||
Costo Estandar [f005 ]
|
||||
[j]
|
||||
|
||||
Usuario Creador [f006 ] Usuario Modificador [f008 ]
|
||||
Fecha Creacion [f007 ] Fecha Modificacion [f009 ]
|
||||
}
|
||||
end
|
||||
tables
|
||||
istb00013,intb00001
|
||||
attributes
|
||||
f1 = istb00013.mes_ini,autonext,comments = "Digite el mes inicial";
|
||||
g4 = formonly.descrip1;
|
||||
f2 = istb00013.mes_fin,autonext,comments = "Digite el mes final";
|
||||
g5 = formonly.descrip2;
|
||||
f002 = istb00013.ano,autonext,comments = "Digite el ano";
|
||||
a = istb00013.cod_n,autonext,comments = "Digite el NIVEL";
|
||||
b = istb00013.cod_grupo,autonext,comments = "Digite el GRUPO";
|
||||
c = istb00013.cod_tipo,autonext,comments = "Digite el TIPO";
|
||||
d = istb00013.cod_sec,autonext,comments = "Digite la SECUENCIA";
|
||||
e = intb00001.descrip_esp,noentry;
|
||||
g = intb00001.unidad_med,noentry;
|
||||
f005 = istb00013.costo_st,comments = "Digite el costo";
|
||||
j = istb00013.status_t,noentry;
|
||||
f006 = istb00013.us_crea,noentry;
|
||||
f007 = istb00013.fech_crea,noentry;
|
||||
f008 = istb00013.us_mod,noentry;
|
||||
f009 = istb00013.fech_mod,noentry;
|
||||
instructions
|
||||
delimiters " "
|
||||
end
|
||||
@@ -0,0 +1,53 @@
|
||||
database rayovac
|
||||
screen size 24 by 80
|
||||
{
|
||||
|
||||
\gp---------------------------------------------------------------------------q\g
|
||||
\g|\gDocumento Numero [f000 ] Orden de Compras [ti][l ] \g|\g
|
||||
\g|\gFecha [f001 ] \g|\g
|
||||
\g|\gSuplidor [p1][f013] [a1 ] Bodega: [p2] \g|\g
|
||||
\gb---------------------------------------------------------------------------d\g
|
||||
C A N T I D A D
|
||||
Codigo Devuelta Ordenada Unidad D e s c r i p c i o n
|
||||
\g------------------------------------------------------------------------------\g
|
||||
[a][b][c ][d ][f02 ][f03 ][p ][k ]
|
||||
[a][b][c ][d ][f02 ][f03 ][p ][k ]
|
||||
[a][b][c ][d ][f02 ][f03 ][p ][k ]
|
||||
[a][b][c ][d ][f02 ][f03 ][p ][k ]
|
||||
[a][b][c ][d ][f02 ][f03 ][p ][k ]
|
||||
[a][b][c ][d ][f02 ][f03 ][p ][k ]
|
||||
\g------------------------------------------------------------------------------\g
|
||||
|
||||
}
|
||||
end
|
||||
tables
|
||||
intb00006,
|
||||
intb00001,
|
||||
cotb00001
|
||||
attributes
|
||||
f000 = intb00006.num_doc,autonext,
|
||||
comments = "Digite Numero Documento";
|
||||
l = intb00006.orden_compra,autonext,
|
||||
comments = "Digite El Numero De La Orden de Compras";
|
||||
f001 = intb00006.fecha, format = "dd/mm/yyyy",autonext,
|
||||
comments = "Digite Fecha Documento";
|
||||
p2 = intb00006.bodega,autonext;
|
||||
|
||||
p1 = intb00006.cod_sp,noentry;
|
||||
f013 = intb00006.cod_sp_sec,noentry;
|
||||
ti = intb00006.tipo,autonext,include = ("01","02","03","04"),comments =
|
||||
"Digite tipo 01-Generales 02-Rov-Ltd. 03-Locales 04-Miscelanas";
|
||||
a = intb00006.cod_n,noentry;
|
||||
b = intb00006.cod_grupo,noentry;
|
||||
c = intb00006.cod_tipo,noentry;
|
||||
d = intb00006.cod_sec,noentry;
|
||||
f02 = intb00006.cantidad_1,autonext,
|
||||
comments = "Digite La Cantidad Ordenada";
|
||||
f03 = intb00006.cantidad_2,noentry;
|
||||
k = intb00001.descrip_esp,noentry,autonext;
|
||||
p = intb00001.unidad_med,noentry,autonext;
|
||||
a1 = cotb00001.nom_sp,noentry;
|
||||
INSTRUCTIONS
|
||||
SCREEN RECORD s_movi1[6] (cod_n,cod_grupo,cod_tipo,cod_sec,cantidad_1,
|
||||
cantidad_2,unidad_med,descrip_esp)
|
||||
end
|
||||
@@ -0,0 +1,66 @@
|
||||
{
|
||||
----------------------------------------------------------------------
|
||||
FORMULARIO : ISFMMT036
|
||||
OBJETIVO : Captura Documento Movimiento: REQUISICION DE MATERIALES
|
||||
de Inventario de Suministro (INPRMT036).
|
||||
PROGRAMADOR : Ing. Juan Fco. Soto
|
||||
FECHA REALIZACION : Octubre 21, 1992.
|
||||
----------------------------------------------------------------------
|
||||
}
|
||||
database rayovac
|
||||
screen size 24 by 80
|
||||
{
|
||||
\gp---------------------------------------------------------------------------q\g
|
||||
\g|\g Codigo Movimiento [p1][ak ]
|
||||
\g|\g Documento Numero [f000 ] Fecha [f001 ] \g|\g
|
||||
\g|\g Codigo de Dpto. [f4 ] [a1 ] \g|\g
|
||||
\g|\g Bodega :[a7] \g|\g
|
||||
\gb---------------------------------------------------------------------------d\g
|
||||
C A N T I D A D
|
||||
Codigo Ordenada Entregada Unidad D e s c r i p c i o n
|
||||
\g-----------------------------------------------------------------------------\g
|
||||
[a][b][c ][d ][f02 ][f03 ][p ][k ]
|
||||
[a][b][c ][d ][f02 ][f03 ][p ][k ]
|
||||
[a][b][c ][d ][f02 ][f03 ][p ][k ]
|
||||
[a][b][c ][d ][f02 ][f03 ][p ][k ]
|
||||
[a][b][c ][d ][f02 ][f03 ][p ][k ]
|
||||
[a][b][c ][d ][f02 ][f03 ][p ][k ]
|
||||
\g-----------------------------------------------------------------------------\g
|
||||
}
|
||||
end
|
||||
tables
|
||||
intb00001,
|
||||
intb00002,
|
||||
intb00006,
|
||||
adtb00001
|
||||
attributes
|
||||
p1 = formonly.cod_mov,comments="Digite Codigo Movimiento";
|
||||
ak = formonly.descrip_mov,noentry;
|
||||
f000 = intb00006.num_doc,autonext,
|
||||
comments = "Digite Numero Documento";
|
||||
f001 = intb00006.fecha, format = "dd/mm/yyyy",autonext,
|
||||
comments = "Digite Fecha Documento";
|
||||
f4 = intb00006.depto_a,autonext,
|
||||
comments = "Digite Codigo Departamento";
|
||||
a1 = adtb00001.nom_dpto,noentry;
|
||||
a = intb00006.cod_n,autonext,
|
||||
comments = "Digite Codigo Articulo";
|
||||
b = intb00006.cod_grupo,autonext,
|
||||
comments = "Digite Codigo Articulo";
|
||||
c = intb00006.cod_tipo,autonext,
|
||||
comments = "Digite Codigo Articulo";
|
||||
d = intb00006.cod_sec,autonext,
|
||||
comments = "Digite Codigo Articulo";
|
||||
f02 = intb00006.cantidad_1,autonext,
|
||||
comments = "Digite La Cantidad Ordenada";
|
||||
f03 = intb00006.cantidad_2,autonext,
|
||||
comments = "Digite La Cantidad Entregada";
|
||||
a7 = intb00006.bodega,autonext,
|
||||
comments = "Digite el codigo de la bodega de almacenamiento";
|
||||
k = intb00001.descrip_esp,noentry,autonext;
|
||||
p = intb00001.unidad_med,noentry;
|
||||
|
||||
INSTRUCTIONS
|
||||
SCREEN RECORD s_movi1[6] (cod_n,cod_grupo,cod_tipo,cod_sec,cantidad_1,
|
||||
cantidad_2,unidad_med,descrip_esp)
|
||||
end
|
||||
@@ -0,0 +1,75 @@
|
||||
{
|
||||
----------------------------------------------------------------------------
|
||||
FORMULARIO : ISFMMT056
|
||||
OBJETIVO : Capturar registros de los Movimientos de Suministro
|
||||
PROGRAMA Q. UTILIZA (ISPRMT056).
|
||||
PROGRAMADOR : Ing. Juan Soto(Johnny)
|
||||
FECHA REALIZACION : Octubre 21, 1993.
|
||||
----------------------------------------------------------------------------
|
||||
}
|
||||
database rayovac
|
||||
screen size 24 by 80
|
||||
{
|
||||
Movimiento:[t ][t1 ] Doc. No. [f00 ]
|
||||
\gp-------------------------------------------------------------------------q\g
|
||||
\g|\gFecha [f05 ] Conduce no.[f03 ] \g|\g
|
||||
\g|\gFactura No.[f04 ] Orden Compra:[ti][f02 ] \g|\g
|
||||
\g|\gSuplidor:[p1]-[f01 ][a ] \g|\g
|
||||
\g|\gDepartamento De[f8 ] [p5 ] \g|\g
|
||||
\g|\gBodega:[k ] \g|\g
|
||||
\gb-------------------------------------------------------------------------d\g
|
||||
C A N T I D A D
|
||||
Codigo Ordenada Recibida/ Unidad D e s c r i p c i o n
|
||||
Ordenada
|
||||
\g------------------------------------------------------------------------------\g
|
||||
[b][c][d ][f ][f06 ][f07 ][f08][g ]
|
||||
[b][c][d ][f ][f06 ][f07 ][f08][g ]
|
||||
[b][c][d ][f ][f06 ][f07 ][f08][g ]
|
||||
[b][c][d ][f ][f06 ][f07 ][f08][g ]
|
||||
\g------------------------------------------------------------------------------\g
|
||||
}
|
||||
end
|
||||
tables
|
||||
intb00006,
|
||||
cotb00001,
|
||||
intb00001,
|
||||
intb00005
|
||||
attributes
|
||||
f00 = intb00006.num_doc,
|
||||
comments = "Digite el Numero Documento";
|
||||
p1 = intb00006.cod_sp,noentry;
|
||||
f01 = intb00006.cod_sp_sec,noentry;
|
||||
f02 = intb00006.orden_compra,noentry;
|
||||
f03 = intb00006.conduce_no,autonext,
|
||||
comments = "Digite el Numero del Conduce Del Suplidor, Si Tiene Conduce";
|
||||
f04 = intb00006.fact_no,autonext,
|
||||
comments = "Digite el Numero de la Factura del Suplidor";
|
||||
f8 = intb00006.depto_de,autonext;
|
||||
p5 = formonly.nom_dpto,noentry;
|
||||
f05 = formonly.fecha type date,format = "dd/mm/yyyy",
|
||||
comments = "Digite la Fecha Correspondiente al Documento";
|
||||
f06 = intb00006.cantidad_1,
|
||||
comments = "Digite la Cantidad Pedida ";
|
||||
f07 = intb00006.cantidad_2,
|
||||
comments = "Digite la Cantidad Llegada desde el Suplidor";
|
||||
f08 = intb00001.unidad_med,noentry;
|
||||
a = cotb00001.nom_sp,noentry;
|
||||
b = intb00006.cod_n,autonext,comments =
|
||||
"Para Borrar un codigo Presione Ctrl-B o Continue Consultando";
|
||||
|
||||
ti = intb00006.tipo,include = ("01","02","03","04"),
|
||||
comments = "Digite 01-Generales 02-Rov-Ltd 03-Locales 04-Micelaneas";
|
||||
c = intb00006.cod_grupo,autonext,comments =
|
||||
"Para Borrar un codigo Presione Ctrl-B o Continue Consultando";
|
||||
d = intb00006.cod_tipo,autonext,comments =
|
||||
"Para Borrar un codigo Presione Ctrl-B o Continue Consultando";
|
||||
f = intb00006.cod_sec,autonext,comments =
|
||||
"Para Borrar un codigo Presione Ctrl-B o Continue Consultando";
|
||||
g = intb00001.descrip_esp,noentry;
|
||||
t = intb00006.cod_mov,autonext;
|
||||
t1 = intb00005.descrip_mov,noentry;
|
||||
k = intb00006.bodega,autonext;
|
||||
INSTRUCTIONS
|
||||
screen record s_movi1[4] (cod_n,cod_grupo,cod_tipo,cod_sec,cantidad_1,
|
||||
cantidad_2,unidad_med,descrip_esp)
|
||||
end
|
||||
@@ -0,0 +1,19 @@
|
||||
database rayovac
|
||||
screen size 24 by 80
|
||||
{
|
||||
|
||||
Ordenamiento [k]
|
||||
Codigo [a][b][c ][d ]
|
||||
}
|
||||
end
|
||||
tables
|
||||
intb00001
|
||||
attributes
|
||||
a = intb00001.cod_n;
|
||||
b = intb00001.cod_grupo;
|
||||
c = intb00001.cod_tipo;
|
||||
d = intb00001.cod_sec;
|
||||
k = formonly.decide type char,required,autonext,
|
||||
comments = "Digite A - Alfabetico N - Numerico",
|
||||
include = ("A","N"),upshift;
|
||||
end
|
||||
@@ -0,0 +1,23 @@
|
||||
database rayovac
|
||||
screen size 24 by 80
|
||||
{
|
||||
Fecha Inicial [k ]
|
||||
Fecha Final [p ]
|
||||
|
||||
Codigo [a]-[b]-[c ]-[d ]
|
||||
}
|
||||
end
|
||||
tables
|
||||
intb00006=intb00006
|
||||
attributes
|
||||
k = formonly.fech_in type date,format = "dd/mm/yyyy",
|
||||
comments = "Introduzca Fecha Inicial ";
|
||||
p = formonly.fech_fi type date,format = "dd/mm/yyyy",
|
||||
comments = "Introduzca Fecha Final";
|
||||
a = intb00006.cod_n,autonext;
|
||||
b = intb00006.cod_grupo,autonext;
|
||||
c = intb00006.cod_tipo,autonext;
|
||||
d = intb00006.cod_sec,autonext;
|
||||
instructions
|
||||
delimiters " "
|
||||
end
|
||||
@@ -0,0 +1,16 @@
|
||||
database rayovac
|
||||
screen size 24 by 80
|
||||
{
|
||||
|
||||
Ordenamiento [k]
|
||||
Codigo Movimiento [a ]
|
||||
}
|
||||
end
|
||||
tables
|
||||
intb00005
|
||||
attributes
|
||||
a = intb00005.cod_mov;
|
||||
k = formonly.decide type char,required,autonext,
|
||||
comments = "Digite A - Alfabetico N - Numerico",
|
||||
include = ("A","N"),upshift;
|
||||
end
|
||||
@@ -0,0 +1,23 @@
|
||||
database rayovac
|
||||
screen size 24 by 80
|
||||
{
|
||||
Fecha Inicial [k ]
|
||||
Fecha Final [p ]
|
||||
|
||||
Codigo [a]-[b]-[c ]-[d ]
|
||||
}
|
||||
end
|
||||
tables
|
||||
intb00001
|
||||
attributes
|
||||
k = formonly.fech_in type date,format = "dd/mm/yyyy",
|
||||
comments = "Introduzca Fecha Inicial ";
|
||||
p = formonly.fech_fi type date,format = "dd/mm/yyyy",
|
||||
comments = "Introduzca Fecha Final";
|
||||
a = intb00001.cod_n;
|
||||
b = intb00001.cod_grupo;
|
||||
c = intb00001.cod_tipo;
|
||||
d = intb00001.cod_sec;
|
||||
instructions
|
||||
delimiters " "
|
||||
end
|
||||
@@ -0,0 +1,25 @@
|
||||
database rayovac
|
||||
screen size 24 by 80
|
||||
{
|
||||
Fecha Inicial [k ]
|
||||
Fecha Final [p ]
|
||||
|
||||
Codigo Movimiento [g ]
|
||||
Codigo [a]-[b]-[c ]-[d ]
|
||||
}
|
||||
end
|
||||
tables
|
||||
intb00006
|
||||
attributes
|
||||
k = formonly.fech_in type date,format = "dd/mm/yyyy",
|
||||
comments = "Introduzca Fecha Inicial ";
|
||||
p = formonly.fech_fi type date,format = "dd/mm/yyyy",
|
||||
comments = "Introduzca Fecha Final";
|
||||
g = intb00006.cod_mov;
|
||||
a = intb00006.cod_n;
|
||||
b = intb00006.cod_grupo;
|
||||
c = intb00006.cod_tipo;
|
||||
d = intb00006.cod_sec;
|
||||
instructions
|
||||
delimiters " "
|
||||
end
|
||||
@@ -0,0 +1,25 @@
|
||||
database rayovac
|
||||
screen size 24 by 80
|
||||
{
|
||||
Fecha Inicial [k ]
|
||||
Fecha Final [p ]
|
||||
|
||||
Codigo Movimiento [g ]
|
||||
Codigo [a]-[b]-[c ]-[d ]
|
||||
}
|
||||
end
|
||||
tables
|
||||
intb00006
|
||||
attributes
|
||||
k = formonly.fech_in type date,format = "dd/mm/yyyy",
|
||||
comments = "Introduzca Fecha Inicial ";
|
||||
p = formonly.fech_fi type date,format = "dd/mm/yyyy",
|
||||
comments = "Introduzca Fecha Final";
|
||||
g = intb00006.cod_mov;
|
||||
a = intb00006.cod_n;
|
||||
b = intb00006.cod_grupo;
|
||||
c = intb00006.cod_tipo;
|
||||
d = intb00006.cod_sec;
|
||||
instructions
|
||||
delimiters " "
|
||||
end
|
||||
@@ -0,0 +1,17 @@
|
||||
database rayovac
|
||||
screen size 24 by 80
|
||||
{
|
||||
|
||||
Codigo [a]-[b]-[c ]-[d ]
|
||||
}
|
||||
end
|
||||
tables
|
||||
intb00006
|
||||
attributes
|
||||
a = intb00006.cod_n;
|
||||
b = intb00006.cod_grupo;
|
||||
c = intb00006.cod_tipo;
|
||||
d = intb00006.cod_sec;
|
||||
instructions
|
||||
delimiters " "
|
||||
end
|
||||
@@ -0,0 +1,23 @@
|
||||
database rayovac
|
||||
screen size 24 by 80
|
||||
{
|
||||
Articulo [a][b][c ][d ]
|
||||
Fecha Inicial [k ]
|
||||
Fecha Final [p ]
|
||||
|
||||
}
|
||||
end
|
||||
tables
|
||||
istb00006
|
||||
attributes
|
||||
a = istb00006.cod_n;
|
||||
b = istb00006.cod_grupo;
|
||||
c = istb00006.cod_tipo;
|
||||
d = istb00006.cod_sec;
|
||||
k = formonly.fecha_1 type datetime year to day,format = "yyyy-mm-dd", comments =
|
||||
"Digite Fecha Inicial con el Sigte. Formato ANO-MES-DIA, EJ. 1994-12-01";
|
||||
p = formonly.fecha_2 type datetime year to day,format = "yyyy-mm-dd", comments =
|
||||
"Digite Fecha Final con el Sigte. Formato ANO-MES-DIA, EJ. 1994-12-31";
|
||||
instructions
|
||||
delimiters " "
|
||||
end
|
||||
@@ -0,0 +1,87 @@
|
||||
{
|
||||
-----------------------------------------------------------------------------
|
||||
PROGRAMA : ISMN00000
|
||||
OBJETIVO : Menu principal del Sistema
|
||||
de Inventario de Suministro.
|
||||
PROGRAMADOR : Juan Fco. Soto (Johnny)
|
||||
FECHA REALIZACION : Octubre 21, 1993.
|
||||
-----------------------------------------------------------------------------
|
||||
PROGRAMADOR : Lic. Abner Montalvo
|
||||
FECHA REALIZACION : Marzo 27, 1999.
|
||||
|
||||
OBJETIVO : Utilizar COMMAND para los menues de este sistema.
|
||||
Optimizar el procedimiento de llamadas de programas.
|
||||
---------------------------------------------------------------------------
|
||||
}
|
||||
GLOBALS
|
||||
"isprgb000.4gl"
|
||||
|
||||
MAIN
|
||||
DEFER INTERRUPT
|
||||
CALL opciones_ismn00000()
|
||||
END MAIN
|
||||
|
||||
FUNCTION opciones_ismn00000()
|
||||
DEFINE opt CHAR(2)
|
||||
DEFINE p_user CHAR(9)
|
||||
DEFINE luz CHAR(5)
|
||||
|
||||
OPTIONS
|
||||
PROMPT LINE 8,
|
||||
ERROR LINE 24
|
||||
CALL desplega_mn00000()
|
||||
|
||||
MENU "Principal: "
|
||||
COMMAND "1"
|
||||
CALL seg000(1,"ismn00000") RETURNING luz
|
||||
IF luz = "azul" THEN
|
||||
RUN "fglrun %FGLPROG%\\ismnmt000"
|
||||
CALL desplega_mn00000()
|
||||
END IF
|
||||
|
||||
COMMAND "2"
|
||||
CALL seg000(2,"ismn00000") RETURNING luz
|
||||
IF luz = "azul" THEN
|
||||
RUN "fglrun %FGLPROG%\\ismncs000"
|
||||
CALL desplega_mn00000()
|
||||
END IF
|
||||
|
||||
COMMAND "3"
|
||||
CALL seg000(3,"ismn00000") RETURNING luz
|
||||
IF luz = "azul" THEN
|
||||
RUN "fglrun %FGLPROG%\\ismnrp000"
|
||||
CALL desplega_mn00000()
|
||||
END IF
|
||||
|
||||
COMMAND KEY("R") "Retornar" "Retorna Menu Principal"
|
||||
EXIT MENU
|
||||
|
||||
END MENU
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION pantalla()
|
||||
DEFINE fecha CHAR(10),
|
||||
hora char(5)
|
||||
LET fecha = today USING "dd/mm/yyyy"
|
||||
LET hora = time
|
||||
DISPLAY "R A Y . O . V A C D O M I N I C A N A" AT 4,21
|
||||
ATTRIBUTE (REVERSE,BLUE)
|
||||
DISPLAY fecha AT 4,68 ATTRIBUTE (RED)
|
||||
DISPLAY "Sistema Inventario de Suministros" AT 5,23 ATTRIBUTE(BLACK)
|
||||
DISPLAY hora AT 6,73 ATTRIBUTE(RED)
|
||||
|
||||
CALL fgl_drawbox(5,79,3,1)
|
||||
CALL fgl_drawbox(1,79,22,1)
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION desplega_mn00000()
|
||||
CLEAR SCREEN
|
||||
CALL pantalla()
|
||||
DISPLAY "Menu Principal" AT 6,33 ATTRIBUTE(BLACK)
|
||||
DISPLAY "ismn00000" AT 4,3 ATTRIBUTE(RED)
|
||||
DISPLAY "1- Mantenimientos ismnmt000" AT 10,1
|
||||
DISPLAY "2- Consultas ismncs000" AT 11,1
|
||||
DISPLAY "3- Reportes ismnrp000" AT 12,1
|
||||
# DISPLAY "R- Retorna Menu Anterior" AT 14,1 ATTRIBUTE (BLACK)
|
||||
END FUNCTION
|
||||
|
||||
@@ -0,0 +1,87 @@
|
||||
{
|
||||
----------------------------------------------------------------------------
|
||||
PROGRAMA : ISMNCS00
|
||||
OBJETIVO : Menu de Consultas del Sistema de
|
||||
Inventario de Suministro.
|
||||
PROGRAMADOR : Ing. Juan Soto.
|
||||
FECHA REALIZACION : Octubre 29, 1993.
|
||||
----------------------------------------------------------------------------
|
||||
PROGRAMADOR : Lic. Abner Montalvo
|
||||
FECHA REALIZACION : Marzo 27, 1999.
|
||||
|
||||
OBJETIVO : Utilizar COMMAND para los menues de este sistema.
|
||||
Optimizar el procedimiento de llamadas de programas.
|
||||
---------------------------------------------------------------------------
|
||||
}
|
||||
DATABASE rayovac
|
||||
GLOBALS
|
||||
DEFINE bandera,numero_msg SMALLINT
|
||||
END GLOBALS
|
||||
|
||||
MAIN
|
||||
CLEAR SCREEN
|
||||
DEFER INTERRUPT
|
||||
CALL opciones_ismncs000()
|
||||
END MAIN
|
||||
|
||||
FUNCTION opciones_ismncs000()
|
||||
DEFINE opt CHAR(2)
|
||||
DEFINE p_user CHAR(9)
|
||||
DEFINE luz CHAR(5)
|
||||
|
||||
OPTIONS
|
||||
PROMPT LINE 8,
|
||||
ERROR LINE 24
|
||||
CALL desplega_mncs000()
|
||||
|
||||
MENU "Consultas: "
|
||||
COMMAND "1"
|
||||
CALL seg000(1,"ismncs000") RETURNING luz
|
||||
IF luz = "azul" THEN
|
||||
#RUN "fglrun %FGLPROG%\\isprcs006()"
|
||||
CALL isprcs006()
|
||||
CALL desplega_mncs000()
|
||||
END IF
|
||||
|
||||
COMMAND KEY("R") "Retornar" "Retorna Menu Principal"
|
||||
EXIT MENU
|
||||
|
||||
END MENU
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION integridad()
|
||||
IF sqlca.sqlcode < 0 THEN
|
||||
LET numero_msg = sqlca.sqlcode
|
||||
CALL msg(numero_msg)
|
||||
DISPLAY numero_msg AT 23,70
|
||||
LET bandera = 1
|
||||
SLEEP 2
|
||||
RETURN
|
||||
END IF
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION pantalla()
|
||||
DEFINE fecha CHAR(10),
|
||||
hora char(5)
|
||||
LET fecha = today USING "dd/mm/yyyy"
|
||||
LET hora = time
|
||||
DISPLAY "R A Y . O . V A C D O M I N I C A N A" AT 4,21
|
||||
ATTRIBUTE (REVERSE,BLUE)
|
||||
DISPLAY fecha AT 4,68 ATTRIBUTE (RED)
|
||||
DISPLAY "Sistema Inventario de Suministros" AT 5,23 ATTRIBUTE(BLACK)
|
||||
DISPLAY hora AT 6,73 ATTRIBUTE(RED)
|
||||
|
||||
CALL fgl_drawbox(5,79,3,1)
|
||||
CALL fgl_drawbox(1,79,22,1)
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION desplega_mncs000()
|
||||
CLEAR SCREEN
|
||||
CALL pantalla()
|
||||
DISPLAY "Consultas" AT 6,35 ATTRIBUTE(BLACK)
|
||||
DISPLAY "ismncs000" AT 4,3 ATTRIBUTE(RED)
|
||||
DISPLAY "1- Balance Suministro isprcs006" AT 10,1
|
||||
# DISPLAY "R- Retorna Menu Anterior" AT 15,1
|
||||
# ATTRIBUTE (BLACK)
|
||||
END FUNCTION
|
||||
|
||||
@@ -0,0 +1,193 @@
|
||||
{
|
||||
---------------------------------------------------------------------------
|
||||
PROGRAMA : ISMNMT00
|
||||
OBJETIVO : Menu de Mantenimientos del Sistema
|
||||
de Inventario de Suministros.
|
||||
PROGRAMADOR : Juan Fco. Soto (Johnny)
|
||||
FECHA REALIZACION : Octubre 21, 1993.
|
||||
---------------------------------------------------------------------------
|
||||
PROGRAMADOR : Lic. Abner Montalvo
|
||||
FECHA REALIZACION : Marzo 27, 1999.
|
||||
|
||||
OBJETIVO : Utilizar COMMAND para los menues de este sistema.
|
||||
Optimizar el procedimiento de llamadas de programas.
|
||||
---------------------------------------------------------------------------
|
||||
}
|
||||
GLOBALS "isprgb000.4gl"
|
||||
MAIN
|
||||
CLEAR SCREEN
|
||||
DEFER INTERRUPT
|
||||
CALL opciones_ismnmt000()
|
||||
END MAIN
|
||||
|
||||
FUNCTION opciones_ismnmt000()
|
||||
DEFINE opt CHAR(2)
|
||||
DEFINE p_user CHAR(9)
|
||||
DEFINE luz CHAR(5)
|
||||
|
||||
OPTIONS
|
||||
PROMPT LINE 8,
|
||||
ERROR LINE 24
|
||||
CALL desplega_mnmt000()
|
||||
|
||||
MENU "Mantenimientos: "
|
||||
COMMAND "1"
|
||||
CALL seg000(1,"ismnmt000") RETURNING luz
|
||||
IF luz = "azul" THEN
|
||||
#RUN "fglrun %FGLPROG%\\isprmt002()"
|
||||
CALL isprmt002()
|
||||
CALL desplega_mnmt000()
|
||||
END IF
|
||||
|
||||
COMMAND "2"
|
||||
CALL seg000(2,"ismnmt000") RETURNING luz
|
||||
IF luz = "azul" THEN
|
||||
#RUN "fglrun %FGLPROG%\\isprmt005()"
|
||||
CALL isprmt005()
|
||||
CALL desplega_mnmt000()
|
||||
END IF
|
||||
|
||||
COMMAND "3"
|
||||
CALL seg000(3,"ismnmt000") RETURNING luz
|
||||
IF luz = "azul" THEN
|
||||
#RUN "fglrun %FGLPROG%\\isprmt036()"
|
||||
CALL isprmt036()
|
||||
CALL desplega_mnmt000()
|
||||
END IF
|
||||
|
||||
COMMAND "4"
|
||||
CALL seg000(4,"ismnmt000") RETURNING luz
|
||||
IF luz = "azul" THEN
|
||||
#RUN "fglrun %FGLPROG%\\isprmt007()"
|
||||
CALL isprmt007()
|
||||
CALL desplega_mnmt000()
|
||||
END IF
|
||||
|
||||
COMMAND "5"
|
||||
CALL seg000(5,"ismnmt000") RETURNING luz
|
||||
IF luz = "azul" THEN
|
||||
#RUN "fglrun %FGLPROG%\\isprmt008()"
|
||||
CALL isprmt008()
|
||||
CALL desplega_mnmt000()
|
||||
END IF
|
||||
|
||||
COMMAND "6"
|
||||
CALL seg000(6,"ismnmt000") RETURNING luz
|
||||
IF luz = "azul" THEN
|
||||
#RUN "fglrun %FGLPROG%\\isprmt003()"
|
||||
CALL isprmt003()
|
||||
CALL desplega_mnmt000()
|
||||
END IF
|
||||
|
||||
COMMAND KEY("R") "Retornar" "Retorna Menu Principal"
|
||||
EXIT MENU
|
||||
|
||||
END MENU
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION integridad()
|
||||
DEFINE bandera,numero_msg INTEGER
|
||||
|
||||
IF sqlca.sqlcode < 0 THEN
|
||||
LET numero_msg = sqlca.sqlcode
|
||||
CALL msg(numero_msg)
|
||||
DISPLAY numero_msg AT 23,70
|
||||
LET bandera = 1
|
||||
SLEEP 2
|
||||
RETURN
|
||||
END IF
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION pantalla()
|
||||
DEFINE fecha CHAR(10),
|
||||
hora char(5)
|
||||
LET fecha = today USING "dd/mm/yyyy"
|
||||
LET hora = time
|
||||
DISPLAY "R A Y . O . V A C D O M I N I C A N A" AT 4,21
|
||||
ATTRIBUTE (REVERSE,BLUE)
|
||||
DISPLAY fecha AT 4,68 ATTRIBUTE (RED)
|
||||
DISPLAY "Sistema Inventario de Suministros" AT 5,23 ATTRIBUTE(BLACK)
|
||||
DISPLAY hora AT 6,73 ATTRIBUTE(RED)
|
||||
|
||||
CALL fgl_drawbox(5,79,3,1)
|
||||
CALL fgl_drawbox(1,79,22,1)
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION prd()
|
||||
DEFINE otrab SMALLINT
|
||||
#DEFINE numero_msg INTEGER
|
||||
#DEFINE p_fechas DATE
|
||||
DEFINE comp_fech,comp_fech1 DATE
|
||||
DEFINE mes_control CHAR(2)
|
||||
DEFINE mes_calc,dia SMALLINT
|
||||
DEFINE fecha_c DATE
|
||||
DEFINE c_ano,a_ano CHAR(4)
|
||||
DEFINE usuario1 CHAR(9)
|
||||
|
||||
LET a_ano = year(today)
|
||||
LET mes_control = MONTH(today)
|
||||
LET mes_calc = mes_control
|
||||
|
||||
IF mes_calc = 01 THEN
|
||||
LET mes_calc = 13
|
||||
LET a_ano = year(today - 32)
|
||||
END IF
|
||||
|
||||
#Aqui la funcion se posicionaba en dos meses para el control del documento
|
||||
#LET mes_calc = mes_calc - 2
|
||||
|
||||
IF mes_calc <= 0 THEN
|
||||
LET mes_calc = 12
|
||||
LET a_ano = year(today) - 1
|
||||
END IF
|
||||
|
||||
LET c_ano = year(today)
|
||||
|
||||
SELECT MIN(fecha_corte) INTO fecha_c FROM prdtable
|
||||
WHERE fecha_corte >= p_fechas
|
||||
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 57
|
||||
CALL msg(numero_msg)
|
||||
LET bandera = 1
|
||||
END IF
|
||||
|
||||
LET dia = 0
|
||||
SELECT MIN(dias_gracia) INTO dia FROM prdtable
|
||||
WHERE fecha_corte = fecha_c
|
||||
|
||||
IF dia IS NULL THEN
|
||||
LET dia = 0
|
||||
END IF
|
||||
|
||||
SELECT UNIQUE a.usuario FROM seg0003 a
|
||||
WHERE a.usuario = USER
|
||||
|
||||
IF STATUS != NOTFOUND THEN
|
||||
LET fecha_c = fecha_c + dia
|
||||
END IF
|
||||
|
||||
LET comp_fech = fecha_c
|
||||
LET comp_fech1 = TODAY
|
||||
|
||||
IF comp_fech < comp_fech1 THEN
|
||||
LET numero_msg = 57
|
||||
CALL msg(numero_msg)
|
||||
LET bandera = 1
|
||||
END IF
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION desplega_mnmt000()
|
||||
CLEAR SCREEN
|
||||
CALL pantalla()
|
||||
DISPLAY "Mantenimientos" AT 6,33 ATTRIBUTE(BLACK)
|
||||
DISPLAY "ismnmt00" AT 4,3 ATTRIBUTE(RED)
|
||||
DISPLAY " 1- Catalogo Suministros isprmt002" AT 10,1
|
||||
DISPLAY " 2- Tipos de Movimientos isprmt005" AT 11,1
|
||||
DISPLAY " 3- Movimientos de Almacen isprmt036" AT 12,1
|
||||
DISPLAY " 4- Unidades de Medida isprmt007" AT 13,1
|
||||
DISPLAY " 5- Conteo Fisico y Ajustes isprmt008" AT 14,1
|
||||
DISPLAY " 6- Costos Standares isprmt003" AT 15,1
|
||||
# DISPLAY " R- Retorna Menu Anterior " AT 20,1
|
||||
# ATTRIBUTE(BLACK)
|
||||
END FUNCTION
|
||||
@@ -0,0 +1,72 @@
|
||||
{
|
||||
----------------------------------------------------------------------------
|
||||
PROGRAMA : ISMNMT06
|
||||
OBJETIVO : Sub Menu Mantenimiento Movimientos
|
||||
Inventario de Suministro.
|
||||
PROGRAMADOR : Juan Fco. Soto (Johnny)
|
||||
FECHA REALIZACION : Octubre 22, 1993.
|
||||
----------------------------------------------------------------------------
|
||||
PROGRAMADOR : Lic. Abner Montalvo
|
||||
FECHA REALIZACION : Marzo 19, 1999.
|
||||
|
||||
OBJETIVO : Utilizar COMMAND para los menues de este sistema.
|
||||
Optimizar el procedimiento de llamadas de programas.
|
||||
---------------------------------------------------------------------------
|
||||
}
|
||||
DATABASE rayovac
|
||||
DEFINE bandera,numero_msg INTEGER
|
||||
|
||||
FUNCTION ismnmt06()
|
||||
CLEAR SCREEN
|
||||
CALL opciones_ismnmt006()
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION opciones_ismnmt006()
|
||||
DEFINE opt CHAR(2)
|
||||
DEFINE p_user CHAR(9)
|
||||
DEFINE luz CHAR(5)
|
||||
|
||||
OPTIONS
|
||||
PROMPT LINE 8,
|
||||
ERROR LINE 24
|
||||
CALL desplega_mnmt006()
|
||||
|
||||
MENU "Mantenimientos: "
|
||||
COMMAND "1"
|
||||
CALL seg000(1,"ismnmt006") RETURNING luz
|
||||
IF luz = "azul" THEN
|
||||
RUN "fglrun %FGLPROG%\\isprmt016()"
|
||||
CALL desplega_mnmt006()
|
||||
END IF
|
||||
|
||||
COMMAND "2"
|
||||
CALL seg000(2,"ismnmt006") RETURNING luz
|
||||
IF luz = "azul" THEN
|
||||
RUN "fglrun %FGLPROG%\\isprmt036()"
|
||||
CALL desplega_mnmt006()
|
||||
END IF
|
||||
|
||||
COMMAND "3"
|
||||
CALL seg000(3,"ismnmt006") RETURNING luz
|
||||
IF luz = "azul" THEN
|
||||
RUN "fglrun %FGLPROG%\\isprmt056()"
|
||||
CALL desplega_mnmt006()
|
||||
END IF
|
||||
|
||||
COMMAND KEY("R") "Retornar" "Retorna Menu Principal"
|
||||
EXIT MENU
|
||||
|
||||
END MENU
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION desplega_mnmt006()
|
||||
CLEAR SCREEN
|
||||
CALL pantalla()
|
||||
DISPLAY " Movimientos De Almacen " AT 6,22 ATTRIBUTE(BLACK)
|
||||
DISPLAY "ismnmt006" AT 4,3 ATTRIBUTE(RED)
|
||||
DISPLAY "1- Suministros Devueltos al Suplidor isprmt016" AT 10,1
|
||||
DISPLAY "2- Requisicion Suministros isprmt036" AT 11,1
|
||||
DISPLAY "3- Actualizacion de Documentos isprmt056" AT 12,1
|
||||
# DISPLAY "R- Retornar Menu Anterior " AT 15,1
|
||||
# ATTRIBUTE (BLACK)
|
||||
END FUNCTION
|
||||
@@ -0,0 +1,157 @@
|
||||
{
|
||||
--------------------------------------------------------------------------
|
||||
PROGRAMA : ISMNRP000
|
||||
OBJETIVO : Menu de Reportes del Sistema
|
||||
de Inventario de Suministro
|
||||
PROGRAMADOR : Juan Soto
|
||||
FECHA REALIZACION : Octubre 27, 1993.
|
||||
--------------------------------------------------------------------------
|
||||
PROGRAMADOR : Lic. Abner Montalvo
|
||||
FECHA REALIZACION : Marzo 27, 1999.
|
||||
|
||||
OBJETIVO : Utilizar COMMAND para los menues de este sistema.
|
||||
Optimizar el procedimiento de llamadas de programas.
|
||||
---------------------------------------------------------------------------
|
||||
}
|
||||
DATABASE rayovac
|
||||
GLOBALS "isprgb000.4gl"
|
||||
|
||||
MAIN
|
||||
DEFER INTERRUPT
|
||||
CALL opciones_ismnrp000()
|
||||
END MAIN
|
||||
|
||||
FUNCTION opciones_ismnrp000()
|
||||
DEFINE opt CHAR(2)
|
||||
DEFINE p_user CHAR(9)
|
||||
DEFINE luz CHAR(5)
|
||||
|
||||
OPTIONS
|
||||
PROMPT LINE 8,
|
||||
ERROR LINE 24
|
||||
CALL desplega_mnrp000()
|
||||
|
||||
MENU "Reportes: "
|
||||
COMMAND "1"
|
||||
CALL seg000(1,"ismnrp000") RETURNING luz
|
||||
IF luz = "azul" THEN
|
||||
#RUN "fglrun %FGLPROG%\\isprrp001()"
|
||||
#CALL isprrp001()
|
||||
CALL desplega_mnrp000()
|
||||
END IF
|
||||
|
||||
COMMAND "2"
|
||||
CALL seg000(2,"ismnrp000") RETURNING luz
|
||||
IF luz = "azul" THEN
|
||||
#RUN "fglrun %FGLPROG%\\isprrp002()"
|
||||
CALL isprrp002()
|
||||
CALL desplega_mnrp000()
|
||||
END IF
|
||||
|
||||
COMMAND "3"
|
||||
CALL seg000(3,"ismnrp000") RETURNING luz
|
||||
IF luz = "azul" THEN
|
||||
#RUN "fglrun %FGLPROG%\\isprrp003()"
|
||||
CALL isprrp003()
|
||||
CALL desplega_mnrp000()
|
||||
END IF
|
||||
|
||||
COMMAND "4"
|
||||
CALL seg000(4,"ismnrp000") RETURNING luz
|
||||
IF luz = "azul" THEN
|
||||
#RUN "fglrun %FGLPROG%\\isprrp008()"
|
||||
CALL isprrp008()
|
||||
CALL desplega_mnrp000()
|
||||
END IF
|
||||
|
||||
COMMAND "5"
|
||||
CALL seg000(5,"ismnrp000") RETURNING luz
|
||||
IF luz = "azul" THEN
|
||||
#RUN "fglrun %FGLPROG%\\isprrp009()"
|
||||
CALL isprrp009()
|
||||
CALL desplega_mnrp000()
|
||||
END IF
|
||||
|
||||
COMMAND "6"
|
||||
CALL seg000(6,"ismnrp000") RETURNING luz
|
||||
IF luz = "azul" THEN
|
||||
#RUN "fglrun %FGLPROG%\\isprrp010()"
|
||||
CALL isprrp010()
|
||||
CALL desplega_mnrp000()
|
||||
END IF
|
||||
|
||||
COMMAND "7"
|
||||
CALL seg000(7,"ismnrp000") RETURNING luz
|
||||
IF luz = "azul" THEN
|
||||
#RUN "fglrun %FGLPROG%\\isprrp011()"
|
||||
CALL isprrp011()
|
||||
CALL desplega_mnrp000()
|
||||
END IF
|
||||
|
||||
COMMAND "8"
|
||||
CALL seg000(8,"ismnrp000") RETURNING luz
|
||||
IF luz = "azul" THEN
|
||||
#RUN "fglrun %FGLPROG%\\isprrp012()"
|
||||
CALL isprrp012()
|
||||
CALL desplega_mnrp000()
|
||||
END IF
|
||||
|
||||
COMMAND "9"
|
||||
CALL seg000(9,"ismnrp000") RETURNING luz
|
||||
IF luz = "azul" THEN
|
||||
#RUN "fglrun %FGLPROG%\\isprrp013()"
|
||||
CALL isprrp013()
|
||||
CALL desplega_mnrp000()
|
||||
END IF
|
||||
|
||||
COMMAND KEY("R") "Retornar" "Retorna Menu Principal"
|
||||
EXIT MENU
|
||||
|
||||
END MENU
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION pantalla()
|
||||
DEFINE fecha CHAR(10),
|
||||
hora char(5)
|
||||
LET fecha = today USING "dd/mm/yyyy"
|
||||
LET hora = time
|
||||
DISPLAY "R A Y . O . V A C D O M I N I C A N A" AT 4,21
|
||||
ATTRIBUTE (REVERSE,BLUE)
|
||||
DISPLAY fecha AT 4,68 ATTRIBUTE (RED)
|
||||
DISPLAY "Sistema Inventario de Suministros" AT 5,23 ATTRIBUTE(BLACK)
|
||||
DISPLAY hora AT 6,73 ATTRIBUTE(RED)
|
||||
|
||||
CALL fgl_drawbox(5,79,3,1)
|
||||
CALL fgl_drawbox(1,79,22,1)
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION integridad()
|
||||
IF sqlca.sqlcode < 0 THEN
|
||||
LET numero_msg = sqlca.sqlcode
|
||||
CALL msg(numero_msg)
|
||||
DISPLAY numero_msg AT 23,70
|
||||
LET bandera = 1
|
||||
SLEEP 2
|
||||
RETURN
|
||||
END IF
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION desplega_mnrp000()
|
||||
CLEAR SCREEN
|
||||
CALL pantalla()
|
||||
LET impresor = FGL_GETENV("IMP")
|
||||
|
||||
DISPLAY "Reportes" AT 6,36 ATTRIBUTE(BLACK)
|
||||
DISPLAY "ismnrp000" AT 4,3 ATTRIBUTE(RED)
|
||||
DISPLAY " 1-Catalogo Bienes y Servicios inprrp001" AT 10,1
|
||||
DISPLAY " 2-Catalogo de Suministros isprrp002" AT 11,1
|
||||
DISPLAY " 3-Movimiento de Almacen isprrp003" AT 12,1
|
||||
DISPLAY " 4-Tipos De Movimientos isprrp008" AT 13,1
|
||||
DISPLAY " 5-Suministro - Existencia isprrp009" AT 14,1
|
||||
DISPLAY " 6-Acumulado Por Movimientos isprrp010" AT 15,1
|
||||
DISPLAY " 7-Operaciones X Movimientos isprrp011" AT 16,1
|
||||
DISPLAY " 8-Comparativo de Existencia isprrp012" AT 17,1
|
||||
DISPLAY " 9-Registros Modificados isprrp013" AT 17,1
|
||||
# DISPLAY " R- Retorna Menu Anterior" AT 20,1
|
||||
# ATTRIBUTE (BLACK)
|
||||
END FUNCTION
|
||||
@@ -0,0 +1,16 @@
|
||||
fgl2p ismn00000.4gl
|
||||
fgl2p ismnmt000.4gl
|
||||
fgl2p ismnmt006.4gl
|
||||
fgl2p isprmt002.4gl
|
||||
fgl2p isprmt003.4gl
|
||||
fgl2p isprmt004.4gl
|
||||
fgl2p isprmt005.4gl
|
||||
fgl2p isprmt007.4gl
|
||||
fgl2p isprmt008.4gl
|
||||
fgl2p isprmt013.4gl
|
||||
fgl2p isprmt016.4gl
|
||||
fgl2p isprmt036.4gl
|
||||
fgl2p isprmt056.4gl
|
||||
|
||||
fgl2p -o ismn00000.42r ismn00000.42m seg000.42m msg.42m
|
||||
fgl2p -o ismnmt000.42r ismnmt000.42m ismnmt006.42m isprmt002.42m isprmt003.42m isprmt005.42m isprmt007.42m isprmt008.42m isprmt013.42m isprmt016.42m isprmt036.42m isprmt056.42m msg.42m seg000.42m msgrp000.42m
|
||||
@@ -0,0 +1,245 @@
|
||||
{
|
||||
-----------------------------------------------------------------------------
|
||||
PROGRAMA : ISPRCS006
|
||||
OBJETIVO : Programa Consulta Balances Suministro.
|
||||
PROGRAMADOR : Juan Fco. Soto (Johnny)
|
||||
FECHA REALIZACION : Octubre 29, 1992.
|
||||
-----------------------------------------------------------------------------
|
||||
}
|
||||
GLOBALS
|
||||
"isprgb000.4gl"
|
||||
|
||||
FUNCTION isprcs006()
|
||||
DEFINE segunda CHAR(1)
|
||||
DEFINE fecha1 char(10)
|
||||
DEFINE hora1 char(5)
|
||||
DEFINE balance_in DECIMAL(12,2)
|
||||
DEFINE primera CHAR(1)
|
||||
DEFINE nombre CHAR(8)
|
||||
LET fecha1 = today using "dd/mm/yyyy"
|
||||
LET hora1 = time
|
||||
LET int_flag = false
|
||||
LET bandera = 0
|
||||
|
||||
WHENEVER ERROR CONTINUE
|
||||
|
||||
CLEAR SCREEN
|
||||
OPTIONS
|
||||
ERROR LINE 24,
|
||||
FORM LINE 4,
|
||||
COMMENT LINE 22,
|
||||
PROMPT LINE 23
|
||||
DISPLAY " R A Y . O . V A C D O M I N I C A N A " AT 1,21
|
||||
ATTRIBUTE (REVERSE,BLUE)
|
||||
DISPLAY fecha1 AT 1,70 ATTRIBUTE (RED)
|
||||
DISPLAY hora1 AT 2,73 ATTRIBUTE (RED)
|
||||
DISPLAY "Consulta Balance - Suministros" AT 2,25 ATTRIBUTE(BLACK)
|
||||
DISPLAY "<Esc> Continua Consultando" AT 3,7 ATTRIBUTE (RED,REVERSE)
|
||||
DISPLAY "<Supr> Cancela Operacion" AT 3,50 ATTRIBUTE (RED,REVERSE)
|
||||
DISPLAY "isprcs006" AT 1,3 ATTRIBUTE (RED)
|
||||
|
||||
OPEN FORM isfmcs006 FROM "isfmcs006"
|
||||
DISPLAY FORM isfmcs006
|
||||
|
||||
INITIALIZE datos_gen.* TO NULL
|
||||
|
||||
LABEL volver:
|
||||
INPUT BY NAME datos_cons.*
|
||||
BEFORE FIELD fech_in
|
||||
LET datos_cons.fech_in = today using "dd/mm/yyyy"
|
||||
DISPLAY BY NAME datos_cons.fech_in
|
||||
|
||||
BEFORE FIELD fech_fi
|
||||
LET datos_cons.fech_fi = today using "dd/mm/yyyy"
|
||||
DISPLAY BY NAME datos_cons.fech_fi
|
||||
|
||||
AFTER FIELD cod_sec
|
||||
|
||||
SELECT descrip_esp,unidad_med INTO datos_cons.descrip_esp,
|
||||
articulos.unidad_med
|
||||
|
||||
FROM intb00001
|
||||
WHERE cod_n = datos_cons.cod_n and
|
||||
cod_grupo = datos_cons.cod_grupo and
|
||||
cod_tipo = datos_cons.cod_tipo and
|
||||
cod_sec = datos_cons.cod_sec and
|
||||
status_t is null
|
||||
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
CLEAR FORM
|
||||
NEXT FIELD cod_n
|
||||
END IF
|
||||
DISPLAY BY NAME datos_cons.descrip_esp,articulos.unidad_med
|
||||
|
||||
CALL integridad()
|
||||
if bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
RETURN
|
||||
end if
|
||||
|
||||
{SELECT fecha INTO datos_cons.fech_in FROM istb00006
|
||||
WHERE cod_mov = 99 AND
|
||||
cod_n = datos_cons.cod_n and
|
||||
cod_grupo = datos_cons.cod_grupo and
|
||||
cod_tipo = datos_cons.cod_tipo and
|
||||
cod_sec = datos_cons.cod_sec}
|
||||
|
||||
AFTER FIELD bodega
|
||||
|
||||
SELECT * FROM istb00009 where cod_bodega = datos_cons.bodega
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD bodega
|
||||
END IF
|
||||
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
CLEAR FORM
|
||||
NEXT FIELD cod_n
|
||||
END IF
|
||||
SELECT * FROM istb00002
|
||||
WHERE cod_n = datos_cons.cod_n and
|
||||
cod_grupo = datos_cons.cod_grupo and
|
||||
cod_tipo = datos_cons.cod_tipo and
|
||||
cod_sec = datos_cons.cod_sec and
|
||||
bodega = datos_cons.bodega
|
||||
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
CLEAR FORM
|
||||
NEXT FIELD cod_n
|
||||
END IF
|
||||
|
||||
AFTER FIELD fech_fi
|
||||
|
||||
IF datos_cons.fech_fi IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD fech_in
|
||||
END IF
|
||||
IF datos_cons.fech_in IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD fech_in
|
||||
END IF
|
||||
|
||||
IF datos_cons.fech_in > datos_cons.fech_fi THEN
|
||||
LET numero_msg = 36
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD fech_in
|
||||
END IF
|
||||
AFTER INPUT
|
||||
EXIT INPUT
|
||||
END INPUT
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = false
|
||||
CLEAR SCREEN
|
||||
RETURN
|
||||
END IF
|
||||
DISPLAY "Buscando Informacion... Espere Por Favor" AT 24,2 ATTRIBUTE (blue)
|
||||
{ SELECT existencia INTO balance FROM istb00002 WHERE
|
||||
cod_n = datos_cons.cod_n and
|
||||
cod_grupo = datos_cons.cod_grupo and
|
||||
cod_tipo = datos_cons.cod_tipo and
|
||||
cod_sec = datos_cons.cod_sec and
|
||||
status_t is null
|
||||
|
||||
IF STATUS >= 0 THEN
|
||||
IF status = notfound THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
GOTO volver
|
||||
END IF
|
||||
ELSE
|
||||
CALL integridad()
|
||||
IF bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
GOTO volver
|
||||
END IF
|
||||
END IF
|
||||
}
|
||||
SELECT SUM(cantidad_2) INTO balance FROM istb00006 WHERE
|
||||
cod_n = datos_cons.cod_n and
|
||||
cod_grupo = datos_cons.cod_grupo and
|
||||
cod_tipo = datos_cons.cod_tipo and
|
||||
cod_sec = datos_cons.cod_sec and
|
||||
fecha <= datos_cons.fech_in and
|
||||
status_t is null
|
||||
|
||||
IF balance is null THEN
|
||||
LET balance = 0
|
||||
END IF
|
||||
LET balance_in = balance
|
||||
|
||||
DISPLAY "Balance Inicial Al: " AT 13,30 ATTRIBUTE (blue)
|
||||
DISPLAY datos_cons.fech_in using "dd/mm/yyyy" AT 13,51 ATTRIBUTE (blue)
|
||||
DISPLAY balance_in using "---,---,---.##" AT 13,61 ATTRIBUTE (blue)
|
||||
|
||||
DECLARE jhonn_1 CURSOR FOR
|
||||
SELECT unique p.num_doc,p.fecha,p.cantidad_2,p.cod_mov
|
||||
FROM istb00006 p
|
||||
WHERE
|
||||
p.cod_n = datos_cons.cod_n and
|
||||
p.cod_grupo = datos_cons.cod_grupo and
|
||||
p.cod_tipo = datos_cons.cod_tipo and
|
||||
p.cod_sec = datos_cons.cod_sec and
|
||||
p.status_t is null and
|
||||
p.fecha > datos_cons.fech_in and
|
||||
p.fecha <= datos_cons.fech_fi
|
||||
|
||||
ORDER BY 2,1
|
||||
OPEN jhonn_1
|
||||
LET idx = 1
|
||||
FOREACH jhonn_1 INTO csmov.*
|
||||
CALL integridad()
|
||||
IF bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
RETURN
|
||||
end if
|
||||
|
||||
LET balance = balance + csmov.cantidad_2
|
||||
LET csmov1[idx].fecha_2 = csmov.fecha_1
|
||||
LET csmov1[idx].balance = balance USING "---,---,---.##"
|
||||
LET csmov1[idx].num_doc = "(",csmov.cod_mov using "&&",")"," ",
|
||||
csmov.num_doc USING "&&&&&&"
|
||||
|
||||
IF csmov.cantidad_2 < 0 THEN
|
||||
LET csmov1[idx].entrada = null
|
||||
LET csmov1[idx].salida = csmov.cantidad_2 USING "---,---,---.##"
|
||||
ELSE
|
||||
LET csmov1[idx].salida = null
|
||||
LET csmov1[idx].entrada = csmov.cantidad_2 USING "###,###,###.##"
|
||||
END IF
|
||||
IF idx < 9 THEN
|
||||
DISPLAY csmov1[idx].num_doc TO s_csmov[idx].num_doc
|
||||
DISPLAY csmov1[idx].fecha_2 TO s_csmov[idx].fecha
|
||||
DISPLAY csmov1[idx].entrada TO s_csmov[idx].entrada
|
||||
DISPLAY csmov1[idx].salida TO s_csmov[idx].salida
|
||||
DISPLAY csmov1[idx].balance TO s_csmov[idx].balance
|
||||
END IF
|
||||
LET idx = idx + 1
|
||||
END FOREACH
|
||||
DISPLAY " " AT 24,2
|
||||
LET balance_in = 0
|
||||
CALL set_count(idx - 1)
|
||||
DISPLAY ARRAY csmov1 TO s_csmov.*
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = false
|
||||
CLEAR SCREEN
|
||||
RETURN
|
||||
END IF
|
||||
CLEAR FORM
|
||||
DISPLAY " " AT 13,6
|
||||
DISPLAY " " AT 13,60
|
||||
GOTO volver
|
||||
END FUNCTION
|
||||
@@ -0,0 +1,287 @@
|
||||
SCHEMA smarmotech
|
||||
|
||||
GLOBALS
|
||||
|
||||
DEFINE movimientos RECORD
|
||||
cod_mov LIKE istb00006.cod_mov,
|
||||
num_doc LIKE istb00006.num_doc,
|
||||
fecha LIKE istb00006.fecha,
|
||||
conduce_no LIKE istb00006.conduce_no,
|
||||
fact_no LIKE istb00006.fact_no,
|
||||
tipo LIKE istb00006.tipo,
|
||||
orden_compra LIKE istb00006.orden_compra,
|
||||
cod_sp LIKE istb00006.cod_sp,
|
||||
cod_sp_sec LIKE istb00006.cod_sp_sec,
|
||||
depto_de LIKE istb00006.depto_de,
|
||||
bodega LIKE istb00006.bodega
|
||||
END RECORD,
|
||||
usuarios,clave VARCHAR(50)
|
||||
|
||||
DEFINE letras RECORD
|
||||
negrillas_on ,
|
||||
negrillas_off ,
|
||||
doble_on ,
|
||||
doble_off ,
|
||||
comp_on ,
|
||||
comp_off ,
|
||||
doce ,
|
||||
normal CHAR(6)
|
||||
END RECORD
|
||||
DEFINE impresor SMALLINT,
|
||||
imprime CHAR(80),
|
||||
archivo CHAR(20)
|
||||
|
||||
DEFINE ultimo RECORD
|
||||
cond_recep LIKE istb00006.cond_recep,
|
||||
uso_tiempo LIKE istb00006.uso_tiempo
|
||||
END RECORD
|
||||
{
|
||||
DEFINE datos1 RECORD
|
||||
cod_mov LIKE istb00005.cod_mov,
|
||||
descrip_mov LIKE istb00005.descrip_mov,
|
||||
num_doc LIKE istb00006.num_doc,
|
||||
fecha LIKE istb00006.fecha,
|
||||
depto_a LIKE istb00006.depto_a,
|
||||
nom_dpto LIKE adtb00001.nom_dpto,
|
||||
bodega LIKE istb00006.bodega
|
||||
END RECORD
|
||||
}
|
||||
DEFINE p_conteo RECORD
|
||||
fecha LIKE istb00006.fecha,
|
||||
bodega LIKE istb00006.bodega,
|
||||
cod_n LIKE istb00006.cod_n,
|
||||
cod_grupo LIKE istb00006.cod_grupo,
|
||||
cod_tipo LIKE istb00006.cod_tipo,
|
||||
cod_sec LIKE istb00006.cod_sec,
|
||||
cantidad LIKE istb00006.cantidad_2
|
||||
END RECORD
|
||||
|
||||
{
|
||||
DEFINE costos RECORD
|
||||
mes_ini LIKE istb00013.mes_ini,
|
||||
mes_fin LIKE istb00013.mes_fin,
|
||||
ano LIKE istb00013.ano,
|
||||
cod_n LIKE intb00001.cod_N,
|
||||
cod_grupo LIKE intb00001.cod_grupo,
|
||||
cod_tipo LIKE intb00001.cod_tipo,
|
||||
cod_sec LIKE intb00001.cod_sec,
|
||||
costo_st LIKE istb00013.costo_st,
|
||||
us_crea LIKE istb00013.us_crea,
|
||||
fech_crea LIKE istb00013.fech_crea,
|
||||
us_mod LIKE istb00013.us_mod,
|
||||
fech_mod LIKE istb00013.fech_mod
|
||||
END RECORD
|
||||
}
|
||||
DEFINE datos RECORD
|
||||
num_doc LIKE istb00006.num_doc,
|
||||
fecha LIKE istb00006.fecha,
|
||||
depto_de LIKE istb00006.depto_de,
|
||||
depto_a LIKE istb00006.depto_a,
|
||||
nom_dpto LIKE adtb00001.nom_dpto,
|
||||
nom_dpto1 LIKE adtb00001.nom_dpto,
|
||||
bodega LIKE istb00006.bodega
|
||||
END RECORD
|
||||
|
||||
DEFINE datos_gen RECORD
|
||||
cod_mov LIKE istb00006.cod_mov,
|
||||
num_doc LIKE istb00006.num_doc,
|
||||
tipo LIKE istb00006.tipo,
|
||||
orden_compra LIKE istb00006.orden_compra,
|
||||
cod_sp LIKE istb00006.cod_sp,
|
||||
cod_sp_sec LIKE istb00006.cod_sp_sec,
|
||||
conduce_no LIKE istb00006.conduce_no,
|
||||
fact_no LIKE istb00006.fact_no,
|
||||
fecha LIKE istb00006.fecha,
|
||||
bodega LIKE istb00006.bodega,
|
||||
nom_sp LIKE cotb00001.nom_sp,
|
||||
descrip_mov VARCHAR(60),
|
||||
depto_de LIKE istb00006.depto_de,
|
||||
depto_a LIKE istb00006.depto_a
|
||||
END RECORD
|
||||
{
|
||||
DEFINE otros_mov RECORD
|
||||
num_doc LIKE istb00006.num_doc,
|
||||
cod_mov LIKE istb00006.cod_mov,
|
||||
fecha LIKE istb00006.fecha,
|
||||
descrip_mov LIKE istb00005.descrip_mov,
|
||||
bodega LIKE istb00006.bodega
|
||||
END RECORD
|
||||
}
|
||||
DEFINE chequea RECORD
|
||||
pto LIKE istb00002.pto_reorden,
|
||||
existe LIKE istb00002.existencia
|
||||
END RECORD
|
||||
|
||||
DEFINE bandera smallint
|
||||
DEFINE p_fechas DATE
|
||||
DEFINE nombre_dia ARRAY[7] OF char(10)
|
||||
DEFINE nombre_mes ARRAY[12] OF char(10)
|
||||
DEFINE general decimal(12,2)
|
||||
DEFINE p_bodega SMALLINT
|
||||
DEFINE arancel RECORD LIKE cotb00005.*
|
||||
DEFINE status_m char(1)
|
||||
DEFINE decide char(1)
|
||||
DEFINE cant DECIMAL(10,2)
|
||||
DEFINE tipo_papel smallint
|
||||
DEFINE balance DECIMAL(12,2)
|
||||
DEFINE cod_mov_ant LIKE istb00006.cod_mov
|
||||
DEFINE existe_comp,suplidor1,doc_existe,actual,mat_prima CHAR (1000)
|
||||
DEFINE opc ,opt2,existe,ya ,opera1,cambio CHAR(1)
|
||||
DEFINE medida CHAR (3)
|
||||
DEFINE fila smallint
|
||||
DEFINE m_articulos RECORD LIKE istb00002.*
|
||||
DEFINE numero_msg LIKE msgtable.cod_msg
|
||||
DEFINE articulos RECORD LIKE intb00001.*
|
||||
|
||||
DEFINE mensajes RECORD {LIKE msgtable.* }
|
||||
cod_msg smallint,
|
||||
desc_msg char(60),
|
||||
us_crea char(9),
|
||||
fech_crea char(16),
|
||||
us_mod char(9),
|
||||
fech_mod char(16)
|
||||
END RECORD
|
||||
|
||||
#DEFINE transacc RECORD LIKE istb00005.*
|
||||
{ cod_mov smallint,
|
||||
descrip_mov char (40),
|
||||
status_mov char (1),
|
||||
cuenta_1 char (4),
|
||||
cuenta_2 char (4),
|
||||
cuenta_3 char (4),
|
||||
us_crea char(9),
|
||||
fech_crea char(16),
|
||||
us_mod char(9),
|
||||
fech_mod char(16)
|
||||
END RECORD }
|
||||
|
||||
DEFINE medidas RECORD LIKE intb00007.*
|
||||
DEFINE descrip3,descrip4 CHAR(30),
|
||||
descrip1,descrip2 CHAR(60)
|
||||
DEFINE criterio CHAR(1000)
|
||||
DEFINE selec CHAR(1000)
|
||||
DEFINE cod_n_a,cod_grupo_a,cod_tipo_a,cod_sec_a SMALLINT
|
||||
DEFINE p_act,idx,scr_l SMALLINT
|
||||
DEFINE opcion CHAR(1)
|
||||
|
||||
DEFINE movi2 ARRAY[100] OF RECORD
|
||||
cod_n LIKE istb00002.cod_n,
|
||||
cod_grupo LIKE istb00002.cod_grupo,
|
||||
cod_tipo LIKE istb00002.cod_tipo,
|
||||
cod_sec LIKE istb00002.cod_sec,
|
||||
cantidad_2 LIKE istb00006.cantidad_2,
|
||||
unidad_med LIKE intb00001.unidad_med,
|
||||
descrip_esp LIKE intb00001.descrip_esp
|
||||
END RECORD
|
||||
|
||||
DEFINE art ARRAY[200] OF RECORD
|
||||
cod_n1 SMALLINT,
|
||||
cod_grupo1 SMALLINT,
|
||||
cod_tipo1 SMALLINT,
|
||||
cod_sec1 SMALLINT,
|
||||
descrip_esp1 CHAR(30),
|
||||
unidad_med LIKE intb00001.unidad_med,
|
||||
bodega LIKE istb00002.bodega,
|
||||
existencia like istb00002.existencia,
|
||||
pto_reorden LIKE istb00002.pto_reorden,
|
||||
dia_llegada LIKE istb00002.dia_llegada,
|
||||
precio LIKE cotb00015.precio,
|
||||
valor decimal(10,2)
|
||||
END RECORD
|
||||
|
||||
DEFINE csmov1 ARRAY[300] OF RECORD
|
||||
num_doc CHAR(11),
|
||||
fecha_2 LIKE istb00006.fecha,
|
||||
entrada char(14),
|
||||
salida char(14),
|
||||
balance char(14)
|
||||
END RECORD
|
||||
|
||||
DEFINE csmov RECORD
|
||||
num_doc LIKE istb00006.num_doc,
|
||||
fecha_1 LIKE istb00006.fecha,
|
||||
cantidad_2 LIKE istb00006.cantidad_2 ,
|
||||
cod_mov LIKE istb00006.cod_mov
|
||||
END RECORD
|
||||
|
||||
DEFINE datos_cons RECORD
|
||||
cod_n LIKE intb00001.cod_n,
|
||||
cod_grupo LIKE intb00001.cod_grupo,
|
||||
cod_tipo LIKE intb00001.cod_tipo,
|
||||
cod_sec LIKE intb00001.cod_sec,
|
||||
descrip_esp LIKE intb00001.descrip_esp,
|
||||
unidad_med LIKE intb00001.unidad_med,
|
||||
bodega LIKE istb00006.bodega,
|
||||
fech_in LIKE istb00006.fecha,
|
||||
fech_fi LIKE istb00006.fecha
|
||||
END RECORD
|
||||
|
||||
DEFINE movi3 ARRAY[100] OF RECORD
|
||||
codigo CHAR(10),
|
||||
cantidad_1 LIKE istb00006.cantidad_1,
|
||||
cantidad_2 LIKE istb00006.cantidad_2,
|
||||
diferencia DECIMAL(10,2),
|
||||
descrip_esp LIKE intb00001.descrip_esp,
|
||||
unidad_med LIKE intb00001.unidad_med
|
||||
END RECORD
|
||||
|
||||
DEFINE movi_ant ARRAY[100] OF RECORD
|
||||
cod_n LIKE istb00006.cod_n,
|
||||
cod_grupo LIKE istb00006.cod_grupo,
|
||||
cod_tipo LIKE istb00006.cod_tipo,
|
||||
cod_sec LIKE istb00006.cod_sec,
|
||||
cant_ant LIKE istb00006.cantidad_2
|
||||
END RECORD
|
||||
|
||||
DEFINE movi ARRAY[100] OF RECORD
|
||||
cod_n LIKE istb00006.cod_n,
|
||||
cod_grupo LIKE istb00006.cod_grupo,
|
||||
cod_tipo LIKE istb00006.cod_tipo,
|
||||
cod_sec LIKE istb00006.cod_sec,
|
||||
cantidad_1 LIKE istb00006.cantidad_1,
|
||||
cantidad_2 LIKE istb00006.cantidad_2,
|
||||
unidad_med LIKE intb00001.unidad_med,
|
||||
descrip_esp LIKE intb00001.descrip_esp
|
||||
END RECORD
|
||||
|
||||
DEFINE ant_art RECORD
|
||||
cod_n LIKE cotb00002.cod_n,
|
||||
cod_grupo LIKE cotb00002.cod_grupo,
|
||||
cod_tipo LIKE cotb00002.cod_tipo,
|
||||
cod_sec LIKE cotb00002.cod_sec
|
||||
END RECORD
|
||||
|
||||
DEFINE consulta_mv ARRAY[200] OF RECORD
|
||||
num_doc LIKE istb00006.num_doc,
|
||||
fecha LIKE istb00006.fecha,
|
||||
nombre char(7),
|
||||
cantidad_1 LIKE istb00006.cantidad_1,
|
||||
cantidad_2 LIKE istb00006.cantidad_1,
|
||||
balance decimal(12,2)
|
||||
END RECORD
|
||||
{
|
||||
DEFINE c_det_inv ARRAY[200] OF RECORD
|
||||
cod_n LIKE intb00001.cod_n,
|
||||
cod_grupo LIKE intb00001.cod_grupo,
|
||||
cod_tipo LIKE intb00001.cod_tipo,
|
||||
cod_sec LIKE intb00001.cod_sec,
|
||||
descrip_esp LIKE intb00001.descrip_esp,
|
||||
existencia LIKE istb00002.existencia,
|
||||
costo LIKE istb00013.costo_st,
|
||||
valor DECIMAL(12,2)
|
||||
END RECORD
|
||||
}
|
||||
DEFINE datos_cs RECORD
|
||||
cod_n LIKE istb00006.cod_n,
|
||||
cod_grupo LIKE istb00006.cod_grupo,
|
||||
cod_tipo LIKE istb00006.cod_tipo,
|
||||
cod_sec LIKE istb00006.cod_sec,
|
||||
descrip_esp LIKE intb00001.descrip_esp,
|
||||
fecha_in LIKE istb00006.fecha,
|
||||
fecha_fi LIKE istb00006.fecha
|
||||
END RECORD
|
||||
|
||||
DEFINE furgon RECORD LIKE cotb00003.*
|
||||
DEFINE furgonart RECORD LIKE cotb00004.*
|
||||
DEFINE arancelart RECORD LIKE cotb00006.*
|
||||
END GLOBALS
|
||||
@@ -0,0 +1,380 @@
|
||||
{
|
||||
------------------------------------------------------------------
|
||||
PROGRAMA : ISPRMT002
|
||||
OBJETIVO : Capturar, Modificar, Eliminar registros de la
|
||||
Tabla Maestra Suministro.
|
||||
PROGRAMADOR : Ing. Juan Fco. Soto
|
||||
FECHA REALIZACION : Octubre 21, 1993.
|
||||
------------------------------------------------------------------
|
||||
}
|
||||
GLOBALS "isprgb000.4gl"
|
||||
|
||||
FUNCTION isprmt002()
|
||||
CLEAR SCREEN
|
||||
OPTIONS
|
||||
FORM LINE 8,
|
||||
ERROR LINE 23,
|
||||
COMMENT LINE 21
|
||||
|
||||
OPEN FORM isfmmt002 FROM "isfmmt002"
|
||||
DISPLAY FORM isfmmt002
|
||||
CALL pantalla()
|
||||
DISPLAY "isprmt002" AT 4,3 ATTRIBUTE(RED)
|
||||
DISPLAY "Catalogo Suministros" at 6,30 ATTRIBUTE(BLACK)
|
||||
|
||||
MENU "OPCIONES"
|
||||
COMMAND "Adicionar"
|
||||
"<Esc> Adiciona Registro <Supr> Cancela Operacion"
|
||||
CLEAR FORM
|
||||
LET INT_FLAG = FALSE
|
||||
CALL ispcad002()
|
||||
COMMAND "Consultar-modificar"
|
||||
"<Esc> Realiza Busqueda <Supr> Cancela Operacion"
|
||||
LET INT_FLAG = FALSE
|
||||
CALL ispcmf002()
|
||||
COMMAND "Salir" "Retorna Menu Anterior"
|
||||
EXIT MENU
|
||||
END MENU
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION ispcad002()
|
||||
DEFINE fech_ant CHAR(8)
|
||||
#WHENEVER ERROR CONTINUE
|
||||
## Captura los datos que va a contener el registro
|
||||
|
||||
INPUT BY NAME m_articulos.cod_n THRU m_articulos.cod_sec,descrip1,descrip2,
|
||||
medida,m_articulos.pto_reorden THRU m_articulos.fech_mod
|
||||
|
||||
## Verifica que el codigo no exista en el catalogo de m_articulos. Si existe,
|
||||
## entonces despliega los datos del registro existente.
|
||||
AFTER FIELD cod_sec
|
||||
IF ( m_articulos.cod_n = 0 AND m_articulos.cod_grupo = 0 AND
|
||||
m_articulos.cod_tipo = 0 AND m_articulos.cod_sec = 0 ) THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_n
|
||||
END IF
|
||||
SELECT i.* FROM intb00001 i
|
||||
WHERE i.cod_n = m_articulos.cod_n AND
|
||||
i.cod_grupo = m_articulos.cod_grupo AND
|
||||
i.cod_tipo = m_articulos.cod_tipo AND
|
||||
i.cod_sec = m_articulos.cod_sec and
|
||||
i.status_t is null
|
||||
|
||||
IF status != NOTFOUND THEN
|
||||
LET numero_msg = 12
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_n
|
||||
END IF
|
||||
|
||||
SELECT max(num_doc),max(fecha) INTO datos_gen.num_doc,datos_gen.fecha
|
||||
FROM istb00006 WHERE cod_mov = 99
|
||||
|
||||
IF status = notfound THEN
|
||||
LET datos_gen.num_doc = 0
|
||||
LET datos_gen.fecha = today
|
||||
END IF
|
||||
|
||||
LET datos_gen.num_doc = datos_gen.num_doc + 1
|
||||
|
||||
AFTER FIELD cod_nab
|
||||
IF m_articulos.cod_nab IS NOT NULL THEN
|
||||
SELECT * FROM cotb00005 WHERE
|
||||
cod_nab = m_articulos.cod_nab and
|
||||
status_t is null
|
||||
|
||||
IF status >= 0 THEN
|
||||
IF status = notfound THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_nab
|
||||
END IF
|
||||
ELSE
|
||||
CALL integridad()
|
||||
|
||||
IF bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
RETURN
|
||||
END IF
|
||||
END IF
|
||||
END IF
|
||||
|
||||
AFTER FIELD existencia
|
||||
IF m_articulos.existencia IS null then
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD existencia
|
||||
END IF
|
||||
|
||||
AFTER FIELD bodega
|
||||
IF m_articulos.bodega IS NOT NULL THEN
|
||||
SELECT * FROM istb00009 WHERE
|
||||
cod_bodega = m_articulos.bodega
|
||||
|
||||
IF status >= 0 THEN
|
||||
IF status = notfound THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD bodega
|
||||
END IF
|
||||
ELSE
|
||||
CALL integridad()
|
||||
|
||||
IF bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
RETURN
|
||||
END IF
|
||||
END IF
|
||||
END IF
|
||||
|
||||
AFTER FIELD dia_llegada
|
||||
IF m_articulos.dia_llegada IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD dia_llegada
|
||||
END IF
|
||||
|
||||
END INPUT
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
INSERT INTO intb00001 VALUES (m_articulos.cod_n,m_articulos.cod_grupo,
|
||||
m_articulos.cod_tipo,m_articulos.cod_sec,descrip1,descrip2,
|
||||
medida,NULL,USER,CURRENT,NULL,NULL)
|
||||
|
||||
INSERT INTO istb00002 VALUES (m_articulos.cod_n,m_articulos.cod_grupo,
|
||||
m_articulos.cod_tipo,m_articulos.cod_sec,m_articulos.pto_reorden,
|
||||
m_articulos.existencia,m_articulos.cod_nab,m_articulos.base,
|
||||
m_articulos.bodega, m_articulos.categoria,
|
||||
m_articulos.dia_llegada,m_articulos.gravamen,
|
||||
null,user,current,null,null)
|
||||
|
||||
# Verifica el Status que retorna luego de insertar el registro en la tabla.
|
||||
# Si el Status es diferente de cero quiere decir que hubo problemas durante
|
||||
# la creacion del registro, entonces despliega un mensaje de alerta para que
|
||||
# el usuario sepa que hubo problemas en la creacion del registro.
|
||||
SELECT * FROM istb00006 WHERE
|
||||
cod_mov = 99 AND
|
||||
cod_n = m_articulos.cod_n AND
|
||||
cod_grupo = m_articulos.cod_grupo AND
|
||||
cod_tipo = m_articulos.cod_tipo AND
|
||||
cod_sec = m_articulos.cod_sec
|
||||
|
||||
IF status = notfound THEN
|
||||
INSERT INTO istb00006 (num_doc,fecha,cod_mov,cod_n,cod_grupo,cod_tipo,
|
||||
cod_sec,cantidad_2,bodega,us_crea,fech_crea)
|
||||
VALUES (1,datos_gen.fecha,99,m_articulos.cod_n,m_articulos.cod_grupo,
|
||||
m_articulos.cod_tipo,m_articulos.cod_sec,m_articulos.existencia,
|
||||
m_articulos.bodega,user,current)
|
||||
|
||||
END IF
|
||||
|
||||
LET numero_msg = 1
|
||||
CALL msg(numero_msg)
|
||||
CLEAR FORM
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION ispcmf002()
|
||||
#WHENEVER ERROR CONTINUE
|
||||
CLEAR FORM
|
||||
## Aqui se prepara para la captura del criterio de seleccion
|
||||
|
||||
CONSTRUCT BY NAME criterio ON istb00002.*
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
LET SELEC = " SELECT UNIQUE * FROM istb00002 WHERE ",
|
||||
" status_t is null AND ",
|
||||
criterio clipped,
|
||||
" ORDER BY 1,2,3,4"
|
||||
PREPARE busca FROM selec
|
||||
CALL integridad()
|
||||
|
||||
IF bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
DECLARE datos SCROLL CURSOR WITH HOLD FOR busca
|
||||
OPEN datos
|
||||
FETCH FIRST datos INTO m_articulos.*
|
||||
IF status >= 0 THEN
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
RETURN
|
||||
END IF
|
||||
ELSE
|
||||
CALL integridad()
|
||||
|
||||
IF bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
RETURN
|
||||
END IF
|
||||
END IF
|
||||
|
||||
SELECT descrip_esp,descrip_ing,unidad_med INTO descrip1,descrip2,medida
|
||||
FROM intb00001
|
||||
WHERE cod_n = m_articulos.cod_n and
|
||||
cod_grupo = m_articulos.cod_grupo and
|
||||
cod_tipo = m_articulos.cod_tipo and
|
||||
cod_sec = m_articulos.cod_sec
|
||||
DISPLAY BY NAME m_articulos.*,descrip1,descrip2,medida
|
||||
|
||||
MENU "OPCIONES "
|
||||
COMMAND "Siguiente"
|
||||
"Presenta en pantalla el proximo registro encontrado"
|
||||
FETCH NEXT datos INTO m_articulos.*
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 4
|
||||
CALL msg(numero_msg)
|
||||
END IF
|
||||
SELECT descrip_esp,descrip_ing,unidad_med INTO descrip1,descrip2,medida
|
||||
FROM intb00001
|
||||
WHERE cod_n = m_articulos.cod_n and
|
||||
cod_grupo = m_articulos.cod_grupo and
|
||||
cod_tipo = m_articulos.cod_tipo and
|
||||
cod_sec = m_articulos.cod_sec
|
||||
DISPLAY BY NAME m_articulos.*,descrip1,descrip2,medida
|
||||
|
||||
COMMAND "Anterior"
|
||||
"Presenta en pantalla el registro anterior encontrado"
|
||||
FETCH PREVIOUS datos INTO m_articulos.*
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 5
|
||||
CALL msg(numero_msg)
|
||||
END IF
|
||||
SELECT descrip_esp,descrip_ing,unidad_med INTO descrip1,descrip2,medida
|
||||
FROM intb00001
|
||||
WHERE cod_n = m_articulos.cod_n and
|
||||
cod_grupo = m_articulos.cod_grupo and
|
||||
cod_tipo = m_articulos.cod_tipo and
|
||||
cod_sec = m_articulos.cod_sec
|
||||
DISPLAY BY NAME m_articulos.*,descrip1,descrip2,medida
|
||||
|
||||
COMMAND "Primero"
|
||||
"Presenta en pantalla el primer registro encontrado"
|
||||
FETCH FIRST datos INTO m_articulos.*
|
||||
SELECT descrip_esp,descrip_ing,unidad_med INTO descrip1,descrip2,medida
|
||||
FROM intb00001
|
||||
WHERE cod_n = m_articulos.cod_n and
|
||||
cod_grupo = m_articulos.cod_grupo and
|
||||
cod_tipo = m_articulos.cod_tipo and
|
||||
cod_sec = m_articulos.cod_sec
|
||||
DISPLAY BY NAME m_articulos.*,descrip1,descrip2,medida
|
||||
LET numero_msg = 5
|
||||
CALL msg(numero_msg)
|
||||
|
||||
COMMAND "Ultimo"
|
||||
"Presenta en pantalla el ultimo registro encontrado"
|
||||
FETCH LAST datos INTO m_articulos.*
|
||||
SELECT descrip_esp,descrip_ing,unidad_med INTO descrip1,descrip2,medida
|
||||
FROM intb00001
|
||||
WHERE cod_n = m_articulos.cod_n and
|
||||
cod_grupo = m_articulos.cod_grupo and
|
||||
cod_tipo = m_articulos.cod_tipo and
|
||||
cod_sec = m_articulos.cod_sec
|
||||
DISPLAY BY NAME m_articulos.*,descrip1,descrip2,medida
|
||||
LET numero_msg = 4
|
||||
CALL msg(numero_msg)
|
||||
|
||||
COMMAND "Escoger"
|
||||
"<Esc> Actualiza Registro <Supr> Cancela Operacion"
|
||||
INPUT BY NAME descrip1,descrip2,medida,m_articulos.pto_reorden THRU
|
||||
m_articulos.fech_mod WITHOUT DEFAULTS
|
||||
|
||||
AFTER FIELD pto_reorden
|
||||
NEXT FIELD existencia
|
||||
|
||||
AFTER FIELD cod_nab
|
||||
IF m_articulos.cod_nab IS NOT NULL THEN
|
||||
SELECT * FROM cotb00005 WHERE
|
||||
cod_nab = m_articulos.cod_nab
|
||||
IF status = notfound THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_nab
|
||||
END IF
|
||||
END IF
|
||||
|
||||
END INPUT
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
UPDATE intb00001 SET (descrip_esp,descrip_ing,unidad_med,us_mod,fech_mod)=
|
||||
(descrip1,descrip2,medida,USER,CURRENT)
|
||||
WHERE @cod_n= m_articulos.cod_n AND @cod_grupo = m_articulos.cod_grupo AND
|
||||
@cod_tipo = m_articulos.cod_tipo AND @cod_sec = m_articulos.cod_sec
|
||||
|
||||
UPDATE istb00002 SET pto_reorden = m_articulos.pto_reorden,
|
||||
existencia = m_articulos.existencia,
|
||||
cod_nab = m_articulos.cod_nab,
|
||||
bodega = m_articulos.bodega,
|
||||
dia_llegada = m_articulos.dia_llegada,
|
||||
gravamen = m_articulos.gravamen,
|
||||
base = m_articulos.base,
|
||||
categoria = m_articulos.categoria,
|
||||
us_mod = USER,
|
||||
fech_mod = CURRENT
|
||||
WHERE cod_n = m_articulos.cod_n AND
|
||||
cod_grupo = m_articulos.cod_grupo AND
|
||||
cod_tipo = m_articulos.cod_tipo AND
|
||||
cod_sec = m_articulos.cod_sec
|
||||
|
||||
UPDATE istb00006 SET cantidad_2 = m_articulos.existencia,
|
||||
us_mod = USER,
|
||||
fech_mod = CURRENT
|
||||
WHERE cod_n = m_articulos.cod_n AND
|
||||
cod_grupo = m_articulos.cod_grupo AND
|
||||
cod_tipo = m_articulos.cod_tipo AND
|
||||
cod_sec = m_articulos.cod_sec
|
||||
|
||||
LET numero_msg = 13
|
||||
CALL msg(numero_msg)
|
||||
|
||||
COMMAND KEY ("L") "eLiminar"
|
||||
UPDATE intb00001 SET status_t = "E",
|
||||
us_mod = user,
|
||||
fech_mod = current
|
||||
WHERE cod_n = m_articulos.cod_n AND
|
||||
cod_grupo = m_articulos.cod_grupo AND
|
||||
cod_tipo = m_articulos.cod_tipo AND
|
||||
cod_sec = m_articulos.cod_sec
|
||||
|
||||
UPDATE istb00002 SET status_t = "E",
|
||||
us_mod = user,
|
||||
fech_mod = current
|
||||
WHERE cod_n = m_articulos.cod_n AND
|
||||
cod_grupo = m_articulos.cod_grupo AND
|
||||
cod_tipo = m_articulos.cod_tipo AND
|
||||
cod_sec = m_articulos.cod_sec
|
||||
|
||||
UPDATE istb00006 SET status_t = "E",
|
||||
us_mod = user,
|
||||
fech_mod = current
|
||||
WHERE cod_n = m_articulos.cod_n AND
|
||||
cod_grupo = m_articulos.cod_grupo AND
|
||||
cod_tipo = m_articulos.cod_tipo AND
|
||||
cod_sec = m_articulos.cod_sec
|
||||
|
||||
LET numero_msg = 39
|
||||
CALL msg(numero_msg)
|
||||
COMMAND "Retornar"
|
||||
"Retorna al menu anterior"
|
||||
CLEAR FORM
|
||||
EXIT MENU
|
||||
END MENU
|
||||
END FUNCTION
|
||||
|
||||
@@ -0,0 +1,319 @@
|
||||
{
|
||||
------------------------------------------------------------------
|
||||
PROGRAMA : ISPRMT002
|
||||
OBJETIVO : Capturar, Modificar, Eliminar registros de la
|
||||
Tabla Maestra Suministro.
|
||||
PROGRAMADOR : Ing. Juan Fco. Soto
|
||||
FECHA REALIZACION : Octubre 21, 1993.
|
||||
------------------------------------------------------------------
|
||||
}
|
||||
GLOBALS "isprgb000.4gl"
|
||||
DEFINE p_rowid,l_rowid,m_rowid INTEGER,
|
||||
opt VARCHAR(3)
|
||||
|
||||
MAIN
|
||||
DEFER INTERRUPT
|
||||
|
||||
CALL ARG_VAL(1) RETURNING usuarios
|
||||
CALL ARG_VAL(2) RETURNING clave
|
||||
CALL ARG_VAL(3) RETURNING impresor
|
||||
DISPLAY "usuario ",usuarios, " clave ",clave
|
||||
CONNECT TO "smarmotech" USER usuarios USING clave
|
||||
|
||||
CALL isprmt002()
|
||||
END MAIN
|
||||
|
||||
FUNCTION isprmt002()
|
||||
CLEAR SCREEN
|
||||
OPTIONS
|
||||
FORM LINE 8,
|
||||
ERROR LINE 23,
|
||||
COMMENT LINE 21
|
||||
|
||||
OPEN FORM isfmmt002 FROM "isfmmt002"
|
||||
DISPLAY FORM isfmmt002
|
||||
# CALL pantalla()
|
||||
DISPLAY "isprmt002" AT 4,3 ATTRIBUTE(RED)
|
||||
DISPLAY "Catalogo Suministros" at 6,30 ATTRIBUTE(BLACK)
|
||||
|
||||
MENU "OPCIONES"
|
||||
COMMAND "Adicionar"
|
||||
"<Esc> Adiciona Registro <Supr> Cancela Operacion"
|
||||
CLEAR FORM
|
||||
LET INT_FLAG = FALSE
|
||||
CALL ispcad002()
|
||||
COMMAND "Consultar-modificar"
|
||||
"<Esc> Realiza Busqueda <Supr> Cancela Operacion"
|
||||
LET INT_FLAG = FALSE
|
||||
CALL ispcmf002()
|
||||
COMMAND "Salir" "Retorna Menu Anterior"
|
||||
EXIT MENU
|
||||
END MENU
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION ispcad002()
|
||||
DEFINE fech_ant CHAR(8)
|
||||
#WHENEVER ERROR CONTINUE
|
||||
## Captura los datos que va a contener el registro
|
||||
|
||||
INPUT BY NAME m_articulos.cod_n THRU m_articulos.cod_sec,m_articulos.descrip_esp,m_articulos.unidad_med,
|
||||
m_articulos.pto_reorden THRU m_articulos.fech_mod
|
||||
BEFORE INPUT
|
||||
LET m_articulos.cod_n = 2
|
||||
LET m_articulos.cod_grupo = 0
|
||||
LET m_articulos.cod_tipo = 0
|
||||
LET m_articulos.bodega = 1
|
||||
LET m_articulos.dia_llegada=0
|
||||
LET m_articulos.existencia=0
|
||||
LET m_articulos.gravamen=0
|
||||
LET m_articulos.pto_reorden=0
|
||||
LET m_articulos.unidad_med='UD'
|
||||
|
||||
DISPLAY BY NAME m_articulos.cod_n,m_articulos.cod_grupo,m_articulos.cod_tipo,
|
||||
m_articulos.bodega,m_articulos.dia_llegada,m_articulos.existencia,
|
||||
m_articulos.gravamen,m_articulos.pto_reorden,m_articulos.unidad_med
|
||||
|
||||
## Verifica que el codigo no exista en el catalogo de m_articulos. Si existe,
|
||||
## entonces despliega los datos del registro existente.
|
||||
AFTER FIELD cod_sec
|
||||
IF ( m_articulos.cod_n = 0 AND m_articulos.cod_grupo = 0 AND
|
||||
m_articulos.cod_tipo = 0 AND m_articulos.cod_sec = 0 ) THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_n
|
||||
END IF
|
||||
|
||||
SELECT max(num_doc),max(fecha) INTO datos_gen.num_doc,datos_gen.fecha
|
||||
FROM istb00006 WHERE cod_mov = 99
|
||||
|
||||
IF status = notfound THEN
|
||||
LET datos_gen.num_doc = 0
|
||||
LET datos_gen.fecha = today
|
||||
END IF
|
||||
|
||||
LET datos_gen.num_doc = datos_gen.num_doc + 1
|
||||
|
||||
AFTER FIELD cod_nab
|
||||
IF m_articulos.cod_nab IS NOT NULL THEN
|
||||
SELECT * FROM cotb00005 WHERE
|
||||
cod_nab = m_articulos.cod_nab and
|
||||
status_t is null
|
||||
|
||||
IF status >= 0 THEN
|
||||
IF status = notfound THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_nab
|
||||
END IF
|
||||
|
||||
END IF
|
||||
END IF
|
||||
|
||||
AFTER FIELD bodega
|
||||
IF m_articulos.bodega IS NOT NULL THEN
|
||||
SELECT * FROM intb00009 WHERE
|
||||
cod_bodega = m_articulos.bodega
|
||||
|
||||
IF status >= 0 THEN
|
||||
IF status = notfound THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD bodega
|
||||
END IF
|
||||
END IF
|
||||
END IF
|
||||
|
||||
AFTER FIELD dia_llegada
|
||||
IF m_articulos.dia_llegada IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD dia_llegada
|
||||
END IF
|
||||
|
||||
END INPUT
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
SELECT MAX(a.cod_sec) INTO m_articulos.cod_sec FROM istb00002 a
|
||||
WHERE a.cod_n = m_articulos.cod_n AND
|
||||
a.cod_grupo = m_articulos.cod_grupo AND
|
||||
a.cod_tipo = m_articulos.cod_tipo
|
||||
|
||||
IF m_articulos.cod_sec IS NULL THEN
|
||||
LET m_articulos.cod_sec = 0
|
||||
END IF
|
||||
LET m_articulos.cod_sec = m_articulos.cod_sec +1
|
||||
DISPLAY BY NAME m_articulos.cod_sec
|
||||
|
||||
INSERT INTO istb00002 (cod_n,cod_grupo,cod_tipo,cod_Sec,pto_reorden,existencia,cod_nab,base,bodega,
|
||||
categoria,dia_llegada,gravamen,us_crea,fech_crea,descrip_esp,unidad_med )
|
||||
VALUES (m_articulos.cod_n,m_articulos.cod_grupo,
|
||||
m_articulos.cod_tipo,m_articulos.cod_sec,m_articulos.pto_reorden,
|
||||
m_articulos.existencia,m_articulos.cod_nab,m_articulos.base,
|
||||
m_articulos.bodega, m_articulos.categoria,
|
||||
m_articulos.dia_llegada,m_articulos.gravamen,
|
||||
usuarios,getdate(),m_articulos.descrip_esp,m_articulos.unidad_med)
|
||||
|
||||
# Verifica el Status que retorna luego de insertar el registro en la tabla.
|
||||
# Si el Status es diferente de cero quiere decir que hubo problemas durante
|
||||
# la creacion del registro, entonces despliega un mensaje de alerta para que
|
||||
# el usuario sepa que hubo problemas en la creacion del registro.
|
||||
|
||||
SELECT * FROM istb00006 WHERE
|
||||
cod_mov = 99 AND
|
||||
cod_n = m_articulos.cod_n AND
|
||||
cod_grupo = m_articulos.cod_grupo AND
|
||||
cod_tipo = m_articulos.cod_tipo AND
|
||||
cod_sec = m_articulos.cod_sec
|
||||
|
||||
IF status = notfound THEN
|
||||
|
||||
INSERT INTO istb00006 (num_doc,fecha,cod_mov,cod_n,cod_grupo,cod_tipo,
|
||||
cod_sec,cantidad_2,bodega,us_crea,fech_crea)
|
||||
VALUES (1,datos_gen.fecha,99,m_articulos.cod_n,m_articulos.cod_grupo,
|
||||
m_articulos.cod_tipo,m_articulos.cod_sec,m_articulos.existencia,
|
||||
m_articulos.bodega,usuarios,getdate())
|
||||
|
||||
END IF
|
||||
|
||||
LET numero_msg = 1
|
||||
CALL msg(numero_msg)
|
||||
CLEAR FORM
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION ispcmf002()
|
||||
#WHENEVER ERROR CONTINUE
|
||||
CLEAR FORM
|
||||
## Aqui se prepara para la captura del criterio de seleccion
|
||||
|
||||
CONSTRUCT BY NAME criterio ON istb00002.*
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
LET SELEC = " SELECT UNIQUE *,rowid FROM istb00002 WHERE ",
|
||||
" status_t is null AND ",
|
||||
criterio clipped,
|
||||
" ORDER BY 1,2,3,4"
|
||||
PREPARE busca FROM selec
|
||||
|
||||
DECLARE datos SCROLL CURSOR WITH HOLD FOR busca
|
||||
OPEN datos
|
||||
FETCH FIRST datos INTO m_articulos.*,m_rowid
|
||||
IF status >= 0 THEN
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
END IF
|
||||
DISPLAY BY NAME m_articulos.*
|
||||
|
||||
MENU "OPCIONES "
|
||||
COMMAND "Siguiente"
|
||||
"Presenta en pantalla el proximo registro encontrado"
|
||||
FETCH NEXT datos INTO m_articulos.*
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 4
|
||||
CALL msg(numero_msg)
|
||||
END IF
|
||||
DISPLAY BY NAME m_articulos.*
|
||||
|
||||
COMMAND "Anterior"
|
||||
"Presenta en pantalla el registro anterior encontrado"
|
||||
FETCH PREVIOUS datos INTO m_articulos.*
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 5
|
||||
CALL msg(numero_msg)
|
||||
END IF
|
||||
DISPLAY BY NAME m_articulos.*
|
||||
|
||||
COMMAND "Primero"
|
||||
"Presenta en pantalla el primer registro encontrado"
|
||||
FETCH FIRST datos INTO m_articulos.*
|
||||
|
||||
DISPLAY BY NAME m_articulos.*
|
||||
LET numero_msg = 5
|
||||
CALL msg(numero_msg)
|
||||
|
||||
COMMAND "Ultimo"
|
||||
"Presenta en pantalla el ultimo registro encontrado"
|
||||
FETCH LAST datos INTO m_articulos.*
|
||||
DISPLAY BY NAME m_articulos.*
|
||||
LET numero_msg = 4
|
||||
CALL msg(numero_msg)
|
||||
|
||||
COMMAND "Escoger"
|
||||
"<Esc> Actualiza Registro <Supr> Cancela Operacion"
|
||||
INPUT BY NAME m_articulos.descrip_esp,m_articulos.unidad_med,m_articulos.pto_reorden THRU
|
||||
m_articulos.fech_mod WITHOUT DEFAULTS
|
||||
|
||||
AFTER FIELD pto_reorden
|
||||
NEXT FIELD existencia
|
||||
|
||||
AFTER FIELD cod_nab
|
||||
IF m_articulos.cod_nab IS NOT NULL THEN
|
||||
SELECT * FROM cotb00005 WHERE
|
||||
cod_nab = m_articulos.cod_nab
|
||||
IF status = notfound THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_nab
|
||||
END IF
|
||||
END IF
|
||||
|
||||
END INPUT
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
UPDATE istb00002 SET descrip_esp = m_articulos.descrip_esp,
|
||||
unidad_med = m_articulos.unidad_med,
|
||||
pto_reorden = m_articulos.pto_reorden,
|
||||
existencia = m_articulos.existencia,
|
||||
cod_nab = m_articulos.cod_nab,
|
||||
bodega = m_articulos.bodega,
|
||||
dia_llegada = m_articulos.dia_llegada,
|
||||
gravamen = m_articulos.gravamen,
|
||||
base = m_articulos.base,
|
||||
categoria = m_articulos.categoria,
|
||||
us_mod = usuarios,
|
||||
fech_mod = GETDATE()
|
||||
|
||||
WHERE rowid = m_rowid
|
||||
|
||||
LET numero_msg = 13
|
||||
CALL msg(numero_msg)
|
||||
|
||||
COMMAND KEY ("L") "eLiminar"
|
||||
LET opt = fgl_Winquestion("ELIMINAR","ESTA SEGURO DE ELIMINAR ESTE REGISTRO?","NO","YES|NO","QUESTION",0)
|
||||
IF opt = "YES" THEN
|
||||
UPDATE istb00002 SET status_t = "E",
|
||||
us_mod = usuarios,
|
||||
fech_mod = getdate()
|
||||
WHERE cod_n = m_articulos.cod_n AND
|
||||
cod_grupo = m_articulos.cod_grupo AND
|
||||
cod_tipo = m_articulos.cod_tipo AND
|
||||
cod_sec = m_articulos.cod_sec
|
||||
|
||||
|
||||
LET numero_msg = 39
|
||||
CALL msg(numero_msg)
|
||||
END IF
|
||||
COMMAND "Retornar"
|
||||
"Retorna al menu anterior"
|
||||
CLEAR FORM
|
||||
EXIT MENU
|
||||
END MENU
|
||||
END FUNCTION
|
||||
|
||||
@@ -0,0 +1,362 @@
|
||||
{
|
||||
-------------------------------------------------------------------------------
|
||||
PROGRAMA : ISPRMT003
|
||||
OBJETIVO : Capturar, Modificar, Eliminar registros de la
|
||||
Tabla de Costos Estandares
|
||||
PROGRAMADOR : Tadeo A. Ferreras
|
||||
FECHA REALIZACION : Nov. 25, 1994
|
||||
-------------------------------------------------------------------------------
|
||||
}
|
||||
GLOBALS "isprgb000.4gl"
|
||||
|
||||
FUNCTION isprmt003()
|
||||
CLEAR SCREEN
|
||||
OPTIONS
|
||||
FORM LINE 9,
|
||||
ERROR LINE 23,
|
||||
COMMENT LINE 21
|
||||
|
||||
OPEN FORM isfmmt003 FROM "isfmmt003"
|
||||
DISPLAY FORM isfmmt003
|
||||
CALL pantalla()
|
||||
DISPLAY "isprmt003" AT 4,3 ATTRIBUTE(RED)
|
||||
DISPLAY "Mantenimiento de Costos Estandares" AT 6,23 ATTRIBUTE(BLACK)
|
||||
|
||||
MENU "OPCIONES"
|
||||
COMMAND "Adicionar"
|
||||
"<Esc> Adiciona Registro <Supr> Cancela Operacion"
|
||||
CLEAR FORM
|
||||
LET int_flag = false
|
||||
CALL ispcad003()
|
||||
COMMAND "Consultar-modificar"
|
||||
"<Esc> Realiza Busqueda <Supr> Cancela Operacion"
|
||||
LET int_flag = false
|
||||
CALL ispcmf003()
|
||||
COMMAND "Salir" "Retorna Menu Anterior"
|
||||
EXIT MENU
|
||||
END MENU
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION ispcad003()
|
||||
#WHENEVER ERROR CONTINUE
|
||||
## Captura los datos que va a contener el registro
|
||||
|
||||
INPUT BY NAME costos.mes_ini THRU costos.costo_st
|
||||
|
||||
## Verifica que el costo exista en el catalogo de costos. Si existe,
|
||||
## entonces despliega los datos del registro existente.
|
||||
|
||||
AFTER FIELD mes_ini
|
||||
IF costos.mes_ini IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD mes_ini
|
||||
END IF
|
||||
SELECT descrip INTO descrip1 FROM mestable
|
||||
WHERE mes = costos.mes_ini and status_t is null
|
||||
|
||||
IF status = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD mes_ini
|
||||
END IF
|
||||
DISPLAY BY NAME descrip1
|
||||
|
||||
AFTER FIELD mes_fin
|
||||
IF costos.mes_fin IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD mes_fin
|
||||
END IF
|
||||
SELECT descrip INTO descrip2 FROM mestable
|
||||
WHERE mes = costos.mes_fin
|
||||
|
||||
IF status = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD mes_fin
|
||||
END IF
|
||||
DISPLAY BY NAME descrip2
|
||||
|
||||
AFTER FIELD ano
|
||||
IF costos.ano IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD ano
|
||||
END IF
|
||||
|
||||
AFTER FIELD cod_sec
|
||||
IF ( costos.cod_n = 0 AND costos.cod_grupo = 0 AND
|
||||
costos.cod_tipo = 0 AND costos.cod_sec = 0 ) THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_n
|
||||
END IF
|
||||
|
||||
SELECT a.mes_ini,a.mes_fin,a.ano,a.cod_n,a.cod_grupo,a.cod_tipo,
|
||||
a.cod_sec
|
||||
FROM istb00013 a
|
||||
WHERE a.mes_ini=costos.mes_ini AND a.mes_fin=costos.mes_fin AND
|
||||
a.ano=costos.ano AND a.cod_n IN(2,7) AND
|
||||
a.cod_n=costos.cod_n AND a.cod_grupo=costos.cod_grupo AND
|
||||
a.cod_tipo=costos.cod_tipo AND a.cod_sec= costos.cod_sec
|
||||
|
||||
IF status != NOTFOUND THEN
|
||||
LET numero_msg = 12
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD mes_ini
|
||||
END IF
|
||||
|
||||
SELECT a.descrip_esp,a.unidad_med
|
||||
INTO articulos.descrip_esp,articulos.unidad_med
|
||||
FROM intb00001 a
|
||||
WHERE a.cod_n= costos.cod_n AND a.cod_grupo=costos.cod_grupo
|
||||
AND a.cod_tipo=costos.cod_tipo AND a.cod_sec=costos.cod_sec
|
||||
AND a.status_t is null
|
||||
|
||||
IF status = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_n
|
||||
END IF
|
||||
|
||||
DISPLAY BY NAME articulos.descrip_esp,articulos.unidad_med
|
||||
|
||||
AFTER FIELD costo_st
|
||||
DISPLAY costos.costo_st USING "##,###,###.####" AT 13,17
|
||||
IF costos.costo_st IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD costo_st
|
||||
END IF
|
||||
|
||||
AFTER INPUT
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
IF costos.costo_st IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD costo_st
|
||||
ELSE
|
||||
INSERT INTO istb00013 VALUES (costos.mes_ini,costos.mes_fin,
|
||||
costos.ano,costos.cod_n,costos.cod_grupo,
|
||||
costos.cod_tipo,costos.cod_sec,costos.costo_st,
|
||||
null,USER,CURRENT,null, null)
|
||||
|
||||
CALL integridad()
|
||||
|
||||
IF bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
LET numero_msg = 1
|
||||
CALL msg(numero_msg)
|
||||
CLEAR FORM
|
||||
LET costos.mes_ini = NULL
|
||||
LET costos.mes_fin = NULL
|
||||
LET costos.ano = NULL
|
||||
LET costos.cod_n = NULL
|
||||
LET costos.cod_grupo = NULL
|
||||
LET costos.cod_tipo = NULL
|
||||
LET costos.cod_sec = NULL
|
||||
LET costos.costo_st = NULL
|
||||
NEXT FIELD mes_ini
|
||||
|
||||
END IF
|
||||
END INPUT
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION ispcmf003()
|
||||
|
||||
#WHENEVER ERROR CONTINUE
|
||||
## Aqui se prepara para la captura del criterio de seleccion
|
||||
|
||||
CONSTRUCT criterio ON c.mes_ini,c.mes_fin,c.ano,c.cod_n,c.cod_grupo,
|
||||
c.cod_tipo,c.cod_sec,c.costo_st
|
||||
FROM mes_ini,mes_fin,ano,cod_n,cod_grupo,cod_tipo,
|
||||
cod_sec,costo_st
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
LET SELEC =
|
||||
"SELECT UNIQUE c.mes_ini,c.mes_fin,c.ano,d.cod_n,d.cod_grupo, ",
|
||||
" d.cod_tipo,d.cod_sec,c.costo_st,c.us_crea,c.fech_crea, ",
|
||||
" c.us_mod,c.fech_mod,a.descrip_esp,a.unidad_med ",
|
||||
"FROM istb00013 c, intb00001 d,intb00001 a ",
|
||||
"WHERE c.cod_n = a.cod_n and c.cod_grupo = a.cod_grupo and ",
|
||||
" c.cod_tipo = a.cod_tipo and c.cod_sec = a.cod_sec and ",
|
||||
" c.cod_n = d.cod_n and c.cod_grupo = d.cod_grupo and ",
|
||||
" c.cod_tipo = d.cod_tipo and c.cod_sec = d.cod_sec and ",
|
||||
" c.status_t is null and ",criterio clipped,
|
||||
" ORDER BY 4,5,6,7"
|
||||
|
||||
PREPARE busca FROM selec
|
||||
DECLARE datos SCROLL CURSOR FOR busca
|
||||
OPEN datos
|
||||
CALL integridad()
|
||||
|
||||
IF bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
FETCH FIRST datos INTO costos.*,articulos.descrip_esp,articulos.unidad_med
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
RETURN
|
||||
END IF
|
||||
SELECT descrip INTO descrip1 FROM mestable
|
||||
WHERE mes = costos.mes_ini and
|
||||
status_t is null
|
||||
DISPLAY BY NAME descrip1
|
||||
|
||||
SELECT descrip INTO descrip2 FROM mestable
|
||||
WHERE mes = costos.mes_fin and
|
||||
status_t is null
|
||||
DISPLAY BY NAME descrip2
|
||||
|
||||
DISPLAY BY NAME costos.*,articulos.descrip_esp,articulos.unidad_med
|
||||
DISPLAY costos.costo_st USING "##,###,###.####" AT 13,17
|
||||
|
||||
|
||||
MENU "OPCIONES"
|
||||
COMMAND "Siguiente"
|
||||
"Presenta en pantalla el proximo registro encontrado"
|
||||
FETCH NEXT datos INTO costos.*,articulos.descrip_esp,articulos.unidad_med
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 4
|
||||
CALL msg(numero_msg)
|
||||
END IF
|
||||
SELECT descrip INTO descrip1 FROM mestable
|
||||
WHERE mes = costos.mes_ini and
|
||||
status_t is null
|
||||
DISPLAY BY NAME descrip1
|
||||
|
||||
SELECT descrip INTO descrip2 FROM mestable
|
||||
WHERE mes = costos.mes_fin and
|
||||
status_t is null
|
||||
DISPLAY BY NAME descrip2
|
||||
|
||||
DISPLAY BY NAME costos.*,articulos.descrip_esp,articulos.unidad_med
|
||||
DISPLAY costos.costo_st USING "##,###,###.####" AT 13,17
|
||||
|
||||
COMMAND "Anterior"
|
||||
"Presenta en pantalla el registro anterior encontrado"
|
||||
FETCH PREVIOUS datos INTO costos.*,articulos.descrip_esp,articulos.unidad_med
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 5
|
||||
CALL msg(numero_msg)
|
||||
END IF
|
||||
SELECT descrip INTO descrip1 FROM mestable
|
||||
WHERE mes = costos.mes_ini and
|
||||
status_t is null
|
||||
DISPLAY BY NAME descrip1
|
||||
|
||||
SELECT descrip INTO descrip2 FROM mestable
|
||||
WHERE mes = costos.mes_fin and
|
||||
status_t is null
|
||||
DISPLAY BY NAME descrip2
|
||||
|
||||
DISPLAY BY NAME costos.*,articulos.descrip_esp,articulos.unidad_med
|
||||
DISPLAY costos.costo_st USING "##,###,###.####" AT 13,17
|
||||
|
||||
COMMAND "Primero"
|
||||
"Presenta en pantalla el primer registro encontrado"
|
||||
FETCH FIRST datos INTO costos.*,articulos.descrip_esp,articulos.unidad_med
|
||||
SELECT descrip INTO descrip1 FROM mestable
|
||||
WHERE mes = costos.mes_ini and
|
||||
status_t is null
|
||||
DISPLAY BY NAME descrip1
|
||||
|
||||
SELECT descrip INTO descrip2 FROM mestable
|
||||
WHERE mes = costos.mes_fin and
|
||||
status_t is null
|
||||
DISPLAY BY NAME descrip2
|
||||
|
||||
DISPLAY BY NAME costos.*,articulos.descrip_esp,articulos.unidad_med
|
||||
DISPLAY costos.costo_st USING "##,###,###.####" AT 13,17
|
||||
LET numero_msg = 5
|
||||
CALL msg(numero_msg)
|
||||
|
||||
COMMAND "Ultimo"
|
||||
"Presenta en pantalla el ultimo registro encontrado"
|
||||
FETCH LAST datos INTO costos.*,articulos.descrip_esp,articulos.unidad_med
|
||||
SELECT descrip INTO descrip1 FROM mestable
|
||||
WHERE mes = costos.mes_ini and
|
||||
status_t is null
|
||||
DISPLAY BY NAME descrip1
|
||||
|
||||
SELECT descrip INTO descrip2 FROM mestable
|
||||
WHERE mes = costos.mes_fin and
|
||||
status_t is null
|
||||
DISPLAY BY NAME descrip2
|
||||
|
||||
DISPLAY BY NAME costos.*,articulos.descrip_esp,articulos.unidad_med
|
||||
DISPLAY costos.costo_st USING "##,###,###.####" AT 13,17
|
||||
LET numero_msg = 4
|
||||
CALL msg(numero_msg)
|
||||
|
||||
COMMAND "Escoger"
|
||||
"<Esc> Actualiza Registro <Supr> Cancela Operacion"
|
||||
INPUT BY NAME costos.costo_st,costos.us_crea,costos.fech_crea,
|
||||
costos.us_mod,costos.fech_mod WITHOUT DEFAULTS
|
||||
|
||||
AFTER FIELD costo_st
|
||||
IF costos.costo_st IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD costo_st
|
||||
END IF
|
||||
|
||||
|
||||
## Verifica si el usuario presiono la tecla <Supr>
|
||||
AFTER INPUT
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
UPDATE istb00013 SET costo_st = costos.costo_st,
|
||||
us_mod = USER,
|
||||
fech_mod = CURRENT
|
||||
WHERE cod_n = costos.cod_n and
|
||||
cod_grupo = costos.cod_grupo and
|
||||
cod_tipo = costos.cod_tipo and
|
||||
cod_sec = costos.cod_sec
|
||||
|
||||
LET numero_msg = 13
|
||||
CALL msg(numero_msg)
|
||||
EXIT INPUT
|
||||
END INPUT
|
||||
|
||||
COMMAND KEY ("L") "eLiminar"
|
||||
UPDATE istb00013 SET status_t = "E"
|
||||
WHERE cod_n = costos.cod_n and
|
||||
cod_grupo = costos.cod_grupo and
|
||||
cod_tipo = costos.cod_tipo and
|
||||
cod_sec = costos.cod_sec
|
||||
|
||||
LET numero_msg = 39
|
||||
CALL msg(numero_msg)
|
||||
|
||||
COMMAND "Retornar"
|
||||
"Retorna al menu anterior"
|
||||
CLEAR FORM
|
||||
EXIT MENU
|
||||
|
||||
END MENU
|
||||
END FUNCTION
|
||||
@@ -0,0 +1,67 @@
|
||||
{
|
||||
==========================================================================
|
||||
PROGRAMA : ISPRMT004
|
||||
OBJETIVO : CERRAR INVENTARIO SUMINISTRO
|
||||
REALIZADO POR : JUAN F. SOTO
|
||||
FECHA : DICIEMBRE 1, 1994.
|
||||
==========================================================================
|
||||
}
|
||||
DATABASE rayovac
|
||||
|
||||
GLOBALS
|
||||
DEFINE trx RECORD LIKE istb00006.*
|
||||
DEFINE p_fecha1,p_fecha2 DATE,
|
||||
cantidad DECIMAL(12,2),
|
||||
opt1 CHAR(1)
|
||||
|
||||
DEFINE datos RECORD
|
||||
cod_n SMALLINT,
|
||||
cod_grupo SMALLINT,
|
||||
cod_tipo SMALLINT,
|
||||
cod_sec SMALLINT,
|
||||
cantidad DECIMAL(12,2)
|
||||
END RECORD
|
||||
|
||||
END GLOBALS
|
||||
|
||||
MAIN
|
||||
CALL cierra()
|
||||
END MAIN
|
||||
FUNCTION cierra()
|
||||
|
||||
OPTIONS
|
||||
PROMPT LINE 12
|
||||
|
||||
DISPLAY "R A Y . O . V A C D O M I N I C A N A, S. A."
|
||||
AT 1,20 ATTRIBUTE(BLUE)
|
||||
DISPLAY "CIERRE TRANSACCIONES PRODUCTOS TERMINADOS"
|
||||
AT 2,22 ATTRIBUTE(BLACK)
|
||||
|
||||
PROMPT "Fecha Inicial, Formato (dd/mm/yy)? " FOR p_fecha1
|
||||
PROMPT "Fecha Final, Formato (dd/mm/yy)? " FOR p_fecha2
|
||||
PROMPT "Esta seguro de proceder (S/N)? " FOR opt1
|
||||
|
||||
DISPLAY "En Proceso... Espere Por Favor" AT 23,1 ATTRIBUTE (BOLD)
|
||||
|
||||
# Introduce Informacion al Historico
|
||||
INSERT INTO istb00003 SELECT *FROM istb00006
|
||||
WHERE fecha between p_fecha1 and p_fecha2
|
||||
|
||||
# Borra las Informacion del historico
|
||||
DELETE FROM istb00006 WHERE fecha between p_fecha1 and p_fecha2
|
||||
|
||||
DECLARE busca CURSOR FOR
|
||||
SELECT cod_n,cod_grupo,cod_tipo,cod_Sec,sum(cantidad_2)
|
||||
FROM istb00003
|
||||
WHERE fecha <= p_fecha2 and status_t is null
|
||||
GROUP BY 1,2,3,4
|
||||
|
||||
FOREACH busca INTO datos.*
|
||||
|
||||
INSERT INTO istb00006(num_doc,fecha,cod_mov,cod_n,cod_grupo,cod_tipo,cod_sec,
|
||||
cantidad_2,us_crea,fech_crea)
|
||||
VALUES (1,p_fecha2,99,datos.cod_n,datos.cod_grupo,datos.cod_tipo,datos.cod_sec,
|
||||
datos.cantidad,user,current)
|
||||
|
||||
END FOREACH
|
||||
END FUNCTION
|
||||
@@ -0,0 +1,343 @@
|
||||
{
|
||||
------------------------------------------------------------------
|
||||
PROGRAMA : ISPRMT005
|
||||
OBJETIVO : Capturar, Modificar, Eliminar registros de la
|
||||
Tabla Tipos de Movimientos.
|
||||
PROGRAMADOR : Ing. Juan Soto
|
||||
FECHA REALIZACION : Octubre 21, 1992.
|
||||
------------------------------------------------------------------
|
||||
}
|
||||
GLOBALS "isprgb000.4gl"
|
||||
|
||||
FUNCTION isprmt005()
|
||||
CLEAR SCREEN
|
||||
OPTIONS
|
||||
FORM LINE 9,
|
||||
ERROR LINE 23,
|
||||
COMMENT LINE 21
|
||||
|
||||
OPEN FORM isfmmt005 FROM "isfmmt005"
|
||||
DISPLAY FORM isfmmt005
|
||||
CALL pantalla()
|
||||
DISPLAY "isprmt005" AT 4,3 ATTRIBUTE(RED)
|
||||
DISPLAY "Tipos de Movimientos" AT 6,30 ATTRIBUTE(BLACK)
|
||||
|
||||
MENU "OPCIONES"
|
||||
COMMAND "Adicionar"
|
||||
"<Esc> Adiciona Registro <Supr> Cancela Operacion"
|
||||
let int_flag = false
|
||||
CLEAR FORM
|
||||
let int_flag = false
|
||||
CALL ispcad005()
|
||||
COMMAND "Consultar-modificar"
|
||||
"<Esc> Realiza Busqueda <Supr> Cancela Operacion"
|
||||
CALL ispcmf005()
|
||||
COMMAND "Salir" "Retorna Menu Anterior"
|
||||
EXIT MENU
|
||||
END MENU
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION ispcad005()
|
||||
## Captura los datos que va a contener el registro
|
||||
WHENEVER ERROR CONTINUE
|
||||
INPUT BY NAME transacc.*
|
||||
|
||||
## Verifica que el codigo no exista en el catalogo de transacciones. Si existe,
|
||||
## entonces despliega los datos del registro existente.
|
||||
|
||||
AFTER FIELD cod_mov
|
||||
IF transacc.cod_mov = 0 OR
|
||||
transacc.cod_mov IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_mov
|
||||
ELSE
|
||||
SELECT * INTO transacc.* FROM istb00005
|
||||
WHERE cod_mov = transacc.cod_mov
|
||||
|
||||
IF status >= 0 THEN
|
||||
IF STATUS != NOTFOUND THEN
|
||||
IF transacc.status_t = "E" THEN
|
||||
LET numero_msg = 36
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_mov
|
||||
END IF
|
||||
|
||||
DISPLAY BY NAME transacc.*
|
||||
LET numero_msg = 12
|
||||
CALL msg(numero_msg)
|
||||
LET transacc.descrip_mov = NULL
|
||||
LET transacc.status_mov = NULL
|
||||
LET transacc.cuenta_1 = NULL
|
||||
LET transacc.cuenta_2 = NULL
|
||||
LET transacc.cuenta_3 = NULL
|
||||
NEXT FIELD cod_mov
|
||||
END IF
|
||||
ELSE
|
||||
CALL integridad()
|
||||
|
||||
if bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
RETURN
|
||||
end if
|
||||
END IF
|
||||
END IF
|
||||
AFTER FIELD descrip_mov
|
||||
IF transacc.descrip_mov IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD descrip_mov
|
||||
END IF
|
||||
|
||||
AFTER FIELD cuenta_1
|
||||
IF transacc.cuenta_1 IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cuenta_1
|
||||
END IF
|
||||
|
||||
AFTER FIELD cuenta_2
|
||||
IF transacc.cuenta_2 IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cuenta_2
|
||||
END IF
|
||||
|
||||
# IF transacc.cuenta_1 = transacc.cuenta_2 THEN
|
||||
# LET numero_msg = 24
|
||||
# CALL msg(numero_msg)
|
||||
# NEXT FIELD cuenta_2
|
||||
# END IF
|
||||
|
||||
AFTER FIELD cuenta_3
|
||||
IF (transacc.cuenta_3 = transacc.cuenta_1) OR
|
||||
(transacc.cuenta_3 = transacc.cuenta_2) THEN
|
||||
LET numero_msg = 24
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cuenta_3
|
||||
END IF
|
||||
|
||||
AFTER INPUT
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
IF transacc.descrip_mov IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD descrip_mov
|
||||
ELSE
|
||||
INSERT INTO istb00005 VALUES (transacc.cod_mov,
|
||||
transacc.descrip_mov, transacc.status_mov,
|
||||
transacc.cuenta_1, transacc.cuenta_2,
|
||||
transacc.cuenta_3, null,USER, CURRENT, null, null)
|
||||
CALL integridad()
|
||||
|
||||
if bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
RETURN
|
||||
end if
|
||||
LET numero_msg = 1
|
||||
CALL msg(numero_msg)
|
||||
CLEAR FORM
|
||||
LET transacc.cod_mov = NULL
|
||||
LET transacc.descrip_mov = NULL
|
||||
LET transacc.status_mov = NULL
|
||||
LET transacc.cuenta_1 = NULL
|
||||
LET transacc.cuenta_2 = NULL
|
||||
LET transacc.cuenta_3 = NULL
|
||||
NEXT FIELD cod_mov
|
||||
|
||||
END IF
|
||||
|
||||
AFTER FIELD fech_mod
|
||||
EXIT INPUT
|
||||
END INPUT
|
||||
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION ispcmf005()
|
||||
## Aqui se prepara para la captura del criterio de seleccion
|
||||
WHENEVER ERROR CONTINUE
|
||||
CONSTRUCT BY NAME criterio ON istb00005.*
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
LET SELEC = " SELECT UNIQUE * FROM istb00005 where ",
|
||||
" status_t is null and ",
|
||||
criterio clipped,
|
||||
" ORDER BY 1"
|
||||
|
||||
PREPARE busca FROM selec
|
||||
CALL integridad()
|
||||
|
||||
if bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
RETURN
|
||||
end if
|
||||
DECLARE datos SCROLL CURSOR WITH HOLD FOR busca
|
||||
OPEN datos
|
||||
|
||||
FETCH FIRST datos INTO transacc.*
|
||||
|
||||
IF status >= 0 THEN
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
RETURN
|
||||
END IF
|
||||
ELSE
|
||||
CALL integridad()
|
||||
|
||||
if bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
RETURN
|
||||
end if
|
||||
END IF
|
||||
DISPLAY BY NAME transacc.*
|
||||
|
||||
MENU "OPCIONES "
|
||||
COMMAND "Siguiente"
|
||||
"Presenta en pantalla el proximo registro encontrado"
|
||||
FETCH NEXT datos INTO transacc.*
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 4
|
||||
CALL msg(numero_msg)
|
||||
END IF
|
||||
CALL integridad()
|
||||
|
||||
if bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
RETURN
|
||||
end if
|
||||
DISPLAY BY NAME transacc.*
|
||||
|
||||
COMMAND "Anterior"
|
||||
"Presenta en pantalla el registro anterior encontrado"
|
||||
FETCH PREVIOUS datos INTO transacc.*
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 5
|
||||
CALL msg(numero_msg)
|
||||
END IF
|
||||
CALL integridad()
|
||||
|
||||
if bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
RETURN
|
||||
end if
|
||||
DISPLAY BY NAME transacc.*
|
||||
|
||||
COMMAND "Primero"
|
||||
"Presenta en pantalla el primer registro encontrado"
|
||||
FETCH FIRST datos INTO transacc.*
|
||||
DISPLAY BY NAME transacc.*
|
||||
LET numero_msg = 5
|
||||
CALL msg(numero_msg)
|
||||
|
||||
COMMAND "Ultimo"
|
||||
"Presenta en pantalla el ultimo registro encontrado"
|
||||
FETCH LAST datos INTO transacc.*
|
||||
DISPLAY BY NAME transacc.*
|
||||
LET numero_msg = 4
|
||||
CALL msg(numero_msg)
|
||||
|
||||
COMMAND "Escoger"
|
||||
"<Esc> Actualiza Registro <Supr> Cancela Operacion"
|
||||
INPUT BY NAME transacc.descrip_mov,
|
||||
transacc.status_mov,
|
||||
transacc.cuenta_1,
|
||||
transacc.cuenta_2,
|
||||
transacc.cuenta_3,
|
||||
transacc.us_crea,
|
||||
transacc.fech_crea,
|
||||
transacc.us_mod,
|
||||
transacc.fech_mod WITHOUT DEFAULTS
|
||||
|
||||
AFTER FIELD descrip_mov
|
||||
IF transacc.descrip_mov IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD descrip_mov
|
||||
END IF
|
||||
|
||||
AFTER FIELD cuenta_1
|
||||
IF transacc.cuenta_1 IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cuenta_1
|
||||
END IF
|
||||
|
||||
AFTER FIELD cuenta_2
|
||||
IF transacc.cuenta_2 IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cuenta_2
|
||||
END IF
|
||||
|
||||
IF transacc.cuenta_1 = transacc.cuenta_2 THEN
|
||||
LET numero_msg = 24
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cuenta_2
|
||||
END IF
|
||||
|
||||
AFTER FIELD cuenta_3
|
||||
IF (transacc.cuenta_3 = transacc.cuenta_1) OR
|
||||
(transacc.cuenta_3 = transacc.cuenta_2) THEN
|
||||
LET numero_msg = 24
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cuenta_3
|
||||
END IF
|
||||
|
||||
AFTER INPUT
|
||||
|
||||
#### Verifica si el usuario presiono la tecla <Supr>
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
UPDATE istb00005 SET descrip_mov = transacc.descrip_mov,
|
||||
status_mov = transacc.status_mov,
|
||||
cuenta_1 = transacc.cuenta_1,
|
||||
cuenta_2 = transacc.cuenta_2,
|
||||
cuenta_3 = transacc.cuenta_3,
|
||||
us_mod = USER,
|
||||
fech_mod = CURRENT
|
||||
WHERE cod_mov = transacc.cod_mov
|
||||
|
||||
CALL integridad()
|
||||
|
||||
if bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
RETURN
|
||||
end if
|
||||
LET numero_msg = 13
|
||||
CALL msg(numero_msg)
|
||||
|
||||
EXIT INPUT
|
||||
END INPUT
|
||||
COMMAND KEY ("L") "eLiminar"
|
||||
|
||||
UPDATE istb00005 SET status_t = "E"
|
||||
WHERE cod_mov = transacc.cod_mov
|
||||
|
||||
LET numero_msg = 39
|
||||
CALL msg(numero_msg)
|
||||
COMMAND "Retornar"
|
||||
"Retorna al menu anterior"
|
||||
CLEAR FORM
|
||||
EXIT MENU
|
||||
END MENU
|
||||
END FUNCTION
|
||||
|
||||
@@ -0,0 +1,256 @@
|
||||
{
|
||||
------------------------------------------------------------------
|
||||
PROGRAMA : INPRMT007
|
||||
OBJETIVO : Capturar, Modificar, Eliminar registros de la
|
||||
Tabla Unidades de Medidas.
|
||||
PROGRAMADOR : Tadeo A. Ferreras
|
||||
FECHA REALIZACION : Agosto 1, 1992.
|
||||
------------------------------------------------------------------
|
||||
}
|
||||
GLOBALS "isprgb000.4gl"
|
||||
|
||||
FUNCTION isprmt007()
|
||||
CLEAR SCREEN
|
||||
OPTIONS
|
||||
FORM LINE 9,
|
||||
ERROR LINE 23,
|
||||
COMMENT LINE 21
|
||||
|
||||
OPEN FORM isfmmt007 FROM "isfmmt007"
|
||||
DISPLAY FORM isfmmt007
|
||||
CALL pantalla()
|
||||
DISPLAY "isprmt007" AT 4,3 ATTRIBUTE(RED)
|
||||
DISPLAY "Mantenimiento Unidades de Medidas" AT 6,23 ATTRIBUTE(BLACK)
|
||||
|
||||
MENU "OPCIONES"
|
||||
COMMAND "Adicionar"
|
||||
"<Esc> Adiciona Registro <Supr> Cancela Operacion"
|
||||
let int_flag = false
|
||||
CLEAR FORM
|
||||
CALL ispcad007()
|
||||
COMMAND "Consultar-modificar"
|
||||
"<Esc> Realiza Busqueda <Supr> Cancela Operacion"
|
||||
let int_flag = false
|
||||
CALL ispcmf007()
|
||||
COMMAND "Salir" "Retorna Menu Anterior"
|
||||
EXIT MENU
|
||||
END MENU
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION ispcad007()
|
||||
WHENEVER ERROR CONTINUE
|
||||
## Captura los datos que va a contener el registro
|
||||
|
||||
INPUT BY NAME medidas.*
|
||||
|
||||
## Verifica que el codigo no exista en el catalogo de unidades. Si existe,
|
||||
## entonces despliega los datos del registro existente.
|
||||
|
||||
AFTER FIELD codigo_unidad
|
||||
IF medidas.codigo_unidad IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD codigo_unidad
|
||||
ELSE
|
||||
SELECT * INTO medidas.* FROM intb00007
|
||||
WHERE codigo_unidad = medidas.codigo_unidad
|
||||
|
||||
IF status >= 0 THEN
|
||||
IF status != NOTFOUND THEN
|
||||
IF medidas.status_t = "E" THEN
|
||||
LET numero_msg = 36
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD codigo_unidad
|
||||
END IF
|
||||
|
||||
DISPLAY BY NAME medidas.*
|
||||
LET numero_msg = 12
|
||||
CALL msg(numero_msg)
|
||||
LET medidas.descripcion = NULL
|
||||
NEXT FIELD codigo_unidad
|
||||
END IF
|
||||
ELSE
|
||||
CALL integridad()
|
||||
IF bandera = 1 THEN
|
||||
CLEAR SCREEN
|
||||
RETURN
|
||||
END IF
|
||||
END IF
|
||||
END IF
|
||||
|
||||
AFTER FIELD descripcion
|
||||
IF medidas.descripcion IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD descripcion
|
||||
END IF
|
||||
|
||||
AFTER INPUT
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
IF medidas.descripcion IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD descripcion
|
||||
ELSE
|
||||
INSERT INTO intb00007 VALUES (medidas.codigo_unidad,medidas.descripcion,
|
||||
null, USER, CURRENT, null, null)
|
||||
|
||||
LET numero_msg = 1
|
||||
CALL msg(numero_msg)
|
||||
CLEAR FORM
|
||||
LET medidas.codigo_unidad = NULL
|
||||
LET medidas.descripcion = NULL
|
||||
NEXT FIELD codigo_unidad
|
||||
|
||||
END IF
|
||||
|
||||
AFTER FIELD fech_mod
|
||||
EXIT INPUT
|
||||
END INPUT
|
||||
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION ispcmf007()
|
||||
## Aqui se prepara para la captura del criterio de seleccion
|
||||
WHENEVER ERROR CONTINUE
|
||||
CONSTRUCT criterio ON intb00007.* FROM intb00007.*
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
LET SELEC = " SELECT UNIQUE * FROM intb00007 where ",
|
||||
" status_t is null and ",
|
||||
criterio clipped,
|
||||
" ORDER BY 1"
|
||||
|
||||
PREPARE busca FROM selec
|
||||
CALL integridad()
|
||||
|
||||
if bandera = 1 THEN
|
||||
CLEAR SCREEN
|
||||
RETURN
|
||||
end if
|
||||
DECLARE datos SCROLL CURSOR FOR busca
|
||||
OPEN datos
|
||||
|
||||
FETCH FIRST datos INTO medidas.*
|
||||
|
||||
IF status >= 0 THEN
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
RETURN
|
||||
END IF
|
||||
ELSE
|
||||
CALL integridad()
|
||||
|
||||
if bandera = 1 THEN
|
||||
CLEAR SCREEN
|
||||
RETURN
|
||||
end if
|
||||
end if
|
||||
DISPLAY BY NAME medidas.*
|
||||
|
||||
MENU "OPCIONES "
|
||||
COMMAND "Siguiente"
|
||||
"Presenta en pantalla el proximo registro encontrado"
|
||||
FETCH NEXT datos INTO medidas.*
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 4
|
||||
CALL msg(numero_msg)
|
||||
END IF
|
||||
DISPLAY BY NAME medidas.*
|
||||
|
||||
COMMAND "Anterior"
|
||||
"Presenta en pantalla el registro anterior encontrado"
|
||||
FETCH PREVIOUS datos INTO medidas.*
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 5
|
||||
CALL msg(numero_msg)
|
||||
END IF
|
||||
DISPLAY BY NAME medidas.*
|
||||
|
||||
COMMAND "Primero"
|
||||
"Presenta en pantalla el primer registro encontrado"
|
||||
FETCH FIRST datos INTO medidas.*
|
||||
DISPLAY BY NAME medidas.*
|
||||
LET numero_msg = 5
|
||||
CALL msg(numero_msg)
|
||||
|
||||
COMMAND "Ultimo"
|
||||
"Presenta en pantalla el ultimo registro encontrado"
|
||||
FETCH LAST datos INTO medidas.*
|
||||
DISPLAY BY NAME medidas.*
|
||||
LET numero_msg = 4
|
||||
CALL msg(numero_msg)
|
||||
|
||||
COMMAND "Escoger"
|
||||
"<Esc> Actualiza Registro <Supr> Cancela Operacion"
|
||||
IF medidas.status_t = "E" THEN
|
||||
LET numero_msg = 39
|
||||
CALL msg(numero_msg)
|
||||
RETURN
|
||||
END IF
|
||||
INPUT BY NAME medidas.descripcion,
|
||||
medidas.us_crea,
|
||||
medidas.fech_crea,
|
||||
medidas.us_mod,
|
||||
medidas.fech_mod WITHOUT DEFAULTS
|
||||
|
||||
AFTER FIELD descripcion
|
||||
IF medidas.descripcion IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD descripcion
|
||||
END IF
|
||||
|
||||
#### Verifica si el usuario presiono la tecla <Supr>
|
||||
|
||||
AFTER INPUT
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
CLEAR FORM
|
||||
RETURN
|
||||
END IF
|
||||
CALL integridad()
|
||||
|
||||
if bandera = 1 THEN
|
||||
CLEAR SCREEN
|
||||
RETURN
|
||||
end if
|
||||
UPDATE intb00007 SET descripcion = medidas.descripcion,
|
||||
us_mod = USER,
|
||||
fech_mod = CURRENT
|
||||
WHERE codigo_unidad = medidas.codigo_unidad
|
||||
|
||||
LET numero_msg = 13
|
||||
CALL msg(numero_msg)
|
||||
|
||||
EXIT INPUT
|
||||
END INPUT
|
||||
|
||||
COMMAND KEY ("L") "eLiminar"
|
||||
UPDATE intb00007 SET status_t = "E"
|
||||
WHERE codigo_unidad = medidas.codigo_unidad
|
||||
|
||||
LET numero_msg = 39
|
||||
CALL msg(numero_msg)
|
||||
COMMAND "Retornar"
|
||||
"Retorna al menu anterior"
|
||||
CLEAR FORM
|
||||
EXIT MENU
|
||||
END MENU
|
||||
END FUNCTION
|
||||
|
||||
@@ -0,0 +1,302 @@
|
||||
{
|
||||
------------------------------------------------------------------
|
||||
PROGRAMA : ISPRMT008
|
||||
OBJETIVO : Capturar Informacion del Conteo Fisico del
|
||||
Inventario Suministro.
|
||||
PROGRAMADOR : Ing. Juan Fco. Soto.
|
||||
FECHA REALIZACION : Octubre 21, 1993.
|
||||
------------------------------------------------------------------
|
||||
}
|
||||
GLOBALS "isprgb000.4gl"
|
||||
|
||||
FUNCTION isprmt008()
|
||||
DEFINE p_hoy DATE
|
||||
DEFINE documen INTEGER
|
||||
DEFINE documento CHAR(6)
|
||||
DEFINE ano CHAR (4)
|
||||
DEFINE existe,salir,otra,de,mueve CHAR(1)
|
||||
DEFINE dife_ant,diferencia,cant_ex,cant_ant,balance_in,ex_mov DECIMAL(10,2)
|
||||
|
||||
OPEN WINDOW cuenta AT 8,7 WITH FORM "isfmmt008" ATTRIBUTE (BORDER,
|
||||
FORM LINE FIRST + 1,COMMENT LINE LAST -1, PROMPT LINE LAST)
|
||||
|
||||
WHENEVER ERROR CONTINUE
|
||||
## Captura los datos que va a contener el registro
|
||||
|
||||
LET p_conteo.fecha = today
|
||||
LABEL volver:
|
||||
CLEAR FORM
|
||||
LET cant_ex = 0
|
||||
LET p_hoy = p_conteo.fecha
|
||||
INITIALIZE p_conteo.* to null
|
||||
LET p_conteo.fecha = p_hoy
|
||||
|
||||
INPUT BY NAME p_conteo.* WITHOUT DEFAULTS ATTRIBUTE (YELLOW)
|
||||
BEFORE FIELD fecha
|
||||
IF otra != "S" THEN
|
||||
INITIALIZE p_conteo.* TO NULL
|
||||
LET documento = null
|
||||
END IF
|
||||
LET otra = null
|
||||
AFTER FIELD fecha
|
||||
|
||||
LET p_fechas = p_conteo.fecha using "ddmmyy"
|
||||
#CALL prd(p_fechas)
|
||||
CALL prd()
|
||||
IF bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
NEXT FIELD fecha
|
||||
END IF
|
||||
AFTER FIELD bodega
|
||||
SELECT * FROM istb00009 WHERE cod_bodega = p_conteo.bodega
|
||||
IF status = notfound THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD bodega
|
||||
END IF
|
||||
|
||||
|
||||
AFTER FIELD cod_sec
|
||||
## Verifica que el codigo no exista en el catalogo de unidades. Si existe,
|
||||
## entonces despliega los datos del registro existente.
|
||||
SELECT a.descrip_esp,a.unidad_med
|
||||
INTO articulos.descrip_esp, articulos.unidad_med
|
||||
FROM intb00001 a,istb00002 b
|
||||
WHERE a.cod_n = p_conteo.cod_n and
|
||||
a.cod_grupo = p_conteo.cod_grupo and
|
||||
a.cod_tipo = p_conteo.cod_tipo and
|
||||
a.cod_sec = p_conteo.cod_sec and
|
||||
b.cod_n = p_conteo.cod_n and
|
||||
b.cod_grupo = p_conteo.cod_grupo and
|
||||
b.cod_tipo = p_conteo.cod_tipo and
|
||||
b.cod_sec = p_conteo.cod_sec and
|
||||
b.bodega = p_conteo.bodega
|
||||
|
||||
IF status >= 0 THEN
|
||||
IF status = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_n
|
||||
END IF
|
||||
ELSE
|
||||
CALL integridad()
|
||||
IF bandera = 1 THEN
|
||||
CLEAR SCREEN
|
||||
RETURN
|
||||
END IF
|
||||
END IF
|
||||
DISPLAY BY NAME articulos.descrip_esp
|
||||
DISPLAY BY NAME articulos.unidad_med
|
||||
LET documen = documento
|
||||
AFTER FIELD cantidad
|
||||
|
||||
IF p_conteo.cantidad IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cantidad
|
||||
END IF
|
||||
|
||||
AFTER INPUT
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
LET salir = "S"
|
||||
GOTO sale
|
||||
END IF
|
||||
|
||||
SELECT sum(cantidad_2) INTO balance FROM istb00006 WHERE
|
||||
cod_n = p_conteo.cod_n and
|
||||
cod_grupo = p_conteo.cod_grupo and
|
||||
cod_tipo = p_conteo.cod_tipo and
|
||||
cod_sec = p_conteo.cod_sec and
|
||||
status_t is null and
|
||||
fecha <= p_conteo.fecha
|
||||
|
||||
LET ex_mov = balance
|
||||
LET ex_mov = ex_mov USING "---,---,---.##"
|
||||
DISPLAY BY NAME ex_mov
|
||||
LABEL sale:
|
||||
EXIT INPUT
|
||||
END INPUT
|
||||
IF salir = "S" THEN
|
||||
GOTO sale1
|
||||
END IF
|
||||
|
||||
LET diferencia = ex_mov - p_conteo.cantidad
|
||||
IF diferencia < 0 THEN
|
||||
LET datos_gen.cod_mov = 52
|
||||
LET diferencia = diferencia * -1
|
||||
ELSE
|
||||
LET datos_gen.cod_mov = 25
|
||||
END IF
|
||||
DISPLAY BY NAME diferencia
|
||||
|
||||
#A1 COMIENZA
|
||||
|
||||
IF diferencia = 0 THEN
|
||||
PROMPT "No tiene Diferencia, Desea Proseguir (S/N)" FOR CHAR OPC
|
||||
IF opc = "N" or opc = "n" THEN
|
||||
GOTO volver
|
||||
LET OPC = NULL
|
||||
ELSE
|
||||
SELECT unique cod_n FROM istb00011
|
||||
WHERE fecha = p_conteo.fecha and
|
||||
cod_n = p_conteo.cod_n and
|
||||
cod_grupo = p_conteo.cod_grupo and
|
||||
cod_tipo = p_conteo.cod_tipo and
|
||||
cod_sec = p_conteo.cod_sec and
|
||||
bodega = p_conteo.bodega
|
||||
|
||||
IF STATUS = NOTFOUND THEN
|
||||
INSERT INTO istb00011 values
|
||||
(p_conteo.*,ex_mov,user,current,null,null)
|
||||
ELSE
|
||||
UPDATE istb00011 set cantidad = p_conteo.cantidad,
|
||||
us_mod = user,
|
||||
fech_mod = current
|
||||
WHERE fecha = p_conteo.fecha and
|
||||
cod_n = p_conteo.cod_n and
|
||||
cod_grupo = p_conteo.cod_grupo and
|
||||
cod_tipo = p_conteo.cod_tipo and
|
||||
cod_sec = p_conteo.cod_sec and
|
||||
bodega = p_conteo.bodega
|
||||
|
||||
END IF
|
||||
GOTO dif
|
||||
LET OPC = NULL
|
||||
END IF
|
||||
END IF
|
||||
LABEL dif:
|
||||
|
||||
#A1 TERMINA
|
||||
|
||||
IF ex_mov != p_conteo.cantidad THEN
|
||||
PROMPT "Tiene Diferencia el Conteo, Desea Hacer Ajuste (S/N)" FOR CHAR OPC
|
||||
|
||||
#A1 COMIENZA
|
||||
|
||||
IF opc = "S" OR opc = "s" THEN
|
||||
DISPLAY "Codigo de Movimiento" AT 11,3
|
||||
DISPLAY "Numero Documento " AT 12,3
|
||||
|
||||
SELECT descrip_mov,status_mov INTO datos_gen.descrip_mov,mueve
|
||||
FROM istb00005 WHERE cod_mov = datos_gen.cod_mov
|
||||
DISPLAY BY NAME datos_gen.descrip_mov,datos_gen.cod_mov
|
||||
|
||||
LABEL err1:
|
||||
INPUT BY NAME datos_gen.num_doc ATTRIBUTE (YELLOW)
|
||||
|
||||
# Ejecuta los movimientos dependiendo si es de entrada o salida
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = false
|
||||
GOTO sale1
|
||||
END IF
|
||||
|
||||
LET documento = datos_gen.num_doc
|
||||
|
||||
# Llama a la funcion que actializa las tablas que se afectara por el ajuste
|
||||
|
||||
CALL introduce(documento,mueve,diferencia,de,cant_ex,ex_mov)
|
||||
END IF
|
||||
END IF
|
||||
|
||||
CLEAR FORM
|
||||
GOTO volver
|
||||
LABEL sale1:
|
||||
CLOSE WINDOW cuenta
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION introduce(documento,mueve,diferencia,de,cant_ex,ex_mov)
|
||||
|
||||
# Funcion actualizadora de las tablas del ajuste y conteo fisico
|
||||
|
||||
DEFINE documento CHAR(6)
|
||||
DEFINE documen INTEGER
|
||||
DEFINE mueve,de CHAR(1)
|
||||
DEFINE ex_mov,cant_ex, diferencia DECIMAL(10,2)
|
||||
LET documen = documento
|
||||
|
||||
DELETE FROM istb00006 WHERE num_doc = documen and
|
||||
cod_n = p_conteo.cod_n and
|
||||
cod_grupo = p_conteo.cod_grupo and
|
||||
cod_tipo = p_conteo.cod_tipo and
|
||||
cod_sec = p_conteo.cod_sec and
|
||||
cod_mov = datos_gen.cod_mov
|
||||
IF datos_gen.cod_mov = 25 THEN
|
||||
LET diferencia = diferencia * -1
|
||||
END IF
|
||||
|
||||
INSERT INTO istb00006(num_doc,cod_mov,fecha,cod_n,cod_grupo,cod_tipo,
|
||||
cod_sec,cantidad_2,bodega,us_crea,fech_crea)
|
||||
VALUES
|
||||
(documento,datos_gen.cod_mov,p_conteo.fecha,
|
||||
p_conteo.cod_n,p_conteo.cod_grupo,p_conteo.cod_tipo,
|
||||
p_conteo.cod_sec,diferencia,p_conteo.bodega,
|
||||
user,current)
|
||||
|
||||
UPDATE istb00002 set existencia = p_conteo.cantidad
|
||||
WHERE
|
||||
cod_n = p_conteo.cod_n and
|
||||
cod_grupo = p_conteo.cod_grupo and
|
||||
cod_tipo = p_conteo.cod_tipo and
|
||||
cod_sec = p_conteo.cod_sec and
|
||||
bodega = p_conteo.bodega
|
||||
|
||||
|
||||
SELECT unique cantidad FROM istb00011
|
||||
WHERE fecha = p_conteo.fecha and
|
||||
cod_n = p_conteo.cod_n and
|
||||
cod_grupo = p_conteo.cod_grupo and
|
||||
cod_tipo = p_conteo.cod_tipo and
|
||||
cod_sec = p_conteo.cod_sec and
|
||||
bodega = p_conteo.bodega
|
||||
|
||||
IF STATUS = NOTFOUND THEN
|
||||
INSERT INTO istb00011 values
|
||||
(p_conteo.*,ex_mov,user,current,null,null)
|
||||
ELSE
|
||||
|
||||
# Si el conteo existe busca la cantidad que se le digito anterior a este
|
||||
# conteo
|
||||
|
||||
SELECT unique cantidad_2 INTO cant_ex FROM istb00006
|
||||
WHERE num_doc = documen and
|
||||
cod_mov = datos_gen.cod_mov and
|
||||
cod_n = p_conteo.cod_n and
|
||||
cod_grupo = p_conteo.cod_grupo and
|
||||
cod_tipo = p_conteo.cod_tipo and
|
||||
cod_sec = p_conteo.cod_sec and
|
||||
bodega = p_conteo.bodega
|
||||
|
||||
|
||||
UPDATE istb00011 set cantidad = p_conteo.cantidad,
|
||||
us_mod = user,
|
||||
fech_mod = current
|
||||
WHERE fecha = p_conteo.fecha and
|
||||
cod_n = p_conteo.cod_n and
|
||||
cod_grupo = p_conteo.cod_grupo and
|
||||
cod_tipo = p_conteo.cod_tipo and
|
||||
cod_sec = p_conteo.cod_sec and
|
||||
bodega = p_conteo.bodega
|
||||
|
||||
IF datos_gen.cod_mov = 52 THEN
|
||||
LET p_conteo.cantidad = (ex_mov - cant_ex) + diferencia
|
||||
ELSE
|
||||
LET p_conteo.cantidad = (ex_mov+ cant_ex) + diferencia
|
||||
END IF
|
||||
|
||||
END IF
|
||||
IF de = "S" THEN
|
||||
LET numero_msg = 13
|
||||
CALL msg(numero_msg)
|
||||
ELSE
|
||||
LET numero_msg = 1
|
||||
CALL msg(numero_msg)
|
||||
END IF
|
||||
let de = null
|
||||
END FUNCTION
|
||||
@@ -0,0 +1,462 @@
|
||||
{
|
||||
-------------------------------------------------------------------------------
|
||||
PROGRAMA : ISTB00013
|
||||
OBJETIVO : Capturar, Modificar, Eliminar registros de la
|
||||
Tabla de Costos Estandares
|
||||
PROGRAMADOR : Ing. Juan Soto
|
||||
FECHA REALIZACION : Octubre 21, 1993
|
||||
-------------------------------------------------------------------------------
|
||||
}
|
||||
GLOBALS "isprgb000.4gl"
|
||||
|
||||
FUNCTION isprmt013()
|
||||
CLEAR SCREEN
|
||||
OPTIONS
|
||||
FORM LINE 9,
|
||||
ERROR LINE 23,
|
||||
COMMENT LINE 21
|
||||
|
||||
OPEN FORM isfmmt013 FROM "isfmmt013"
|
||||
DISPLAY FORM isfmmt013
|
||||
CALL pantalla()
|
||||
DISPLAY "isprmt013" AT 4,3 ATTRIBUTE(RED)
|
||||
DISPLAY "Costos Estandares" AT 6,31 ATTRIBUTE(BLACK)
|
||||
|
||||
MENU "OPCIONES"
|
||||
COMMAND "Adicionar"
|
||||
"<Esc> Adiciona Registro <Supr> Cancela Operacion"
|
||||
CLEAR FORM
|
||||
LET int_flag = false
|
||||
CALL ispcad013()
|
||||
COMMAND "Consultar-modificar"
|
||||
"<Esc> Realiza Busqueda <Supr> Cancela Operacion"
|
||||
LET int_flag = false
|
||||
CALL ispcmf013()
|
||||
COMMAND "Salir" "Retorna Menu Anterior"
|
||||
EXIT MENU
|
||||
END MENU
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION ispcad013()
|
||||
#WHENEVER ERROR CONTINUE
|
||||
## Captura los datos que va a contener el registro
|
||||
|
||||
INPUT BY NAME costos.mes_ini THRU costos.costo_st
|
||||
|
||||
## Verifica que el costo exista en el catalogo de costos. Si existe,
|
||||
## entonces despliega los datos del registro existente.
|
||||
|
||||
AFTER FIELD mes_ini
|
||||
IF costos.mes_ini IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD mes_ini
|
||||
ELSE
|
||||
SELECT descrip INTO descrip1 FROM mestable
|
||||
WHERE mes = costos.mes_ini and
|
||||
status_t is null
|
||||
|
||||
IF status >= 0 THEN
|
||||
IF status = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD mes_ini
|
||||
END IF
|
||||
ELSE
|
||||
CALL integridad()
|
||||
|
||||
IF bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
RETURN
|
||||
END IF
|
||||
END IF
|
||||
DISPLAY BY NAME descrip1
|
||||
END IF
|
||||
|
||||
AFTER FIELD mes_fin
|
||||
IF costos.mes_fin IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD mes_fin
|
||||
ELSE
|
||||
SELECT descrip INTO descrip2 FROM mestable
|
||||
WHERE mes = costos.mes_fin and
|
||||
status_t is null
|
||||
|
||||
IF status >= 0 THEN
|
||||
IF status = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD mes_fin
|
||||
END IF
|
||||
ELSE
|
||||
CALL integridad()
|
||||
|
||||
IF bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
RETURN
|
||||
END IF
|
||||
END IF
|
||||
DISPLAY BY NAME descrip2
|
||||
END IF
|
||||
|
||||
AFTER FIELD ano
|
||||
IF costos.ano IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD ano
|
||||
END IF
|
||||
|
||||
AFTER FIELD cod_sec
|
||||
SELECT mes_ini,mes_fin,ano,cod_n,cod_grupo,cod_tipo,cod_sec
|
||||
FROM istb00013
|
||||
WHERE mes_ini = costos.mes_ini AND
|
||||
mes_fin = costos.mes_fin AND
|
||||
ano = costos.ano AND
|
||||
cod_n = costos.cod_n AND
|
||||
cod_grupo = costos.cod_grupo AND
|
||||
cod_tipo = costos.cod_tipo AND
|
||||
cod_sec = costos.cod_sec
|
||||
|
||||
IF status != NOTFOUND THEN
|
||||
LET numero_msg = 12
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD mes_ini
|
||||
END IF
|
||||
|
||||
IF ( costos.cod_n = 0 AND costos.cod_grupo = 0 AND
|
||||
costos.cod_tipo = 0 AND costos.cod_sec = 0 ) THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_n
|
||||
ELSE
|
||||
SELECT descrip_esp,unidad_med
|
||||
INTO articulos.descrip_esp,articulos.unidad_med
|
||||
FROM intb00001 a, istb00002 b
|
||||
WHERE a.cod_n = b.cod_n AND
|
||||
a.cod_grupo = b.cod_grupo AND
|
||||
a.cod_tipo = b.cod_tipo AND
|
||||
a.cod_sec = b.cod_sec AND
|
||||
b.cod_n = costos.cod_n AND
|
||||
b.cod_grupo = costos.cod_grupo AND
|
||||
b.cod_tipo = costos.cod_tipo AND
|
||||
b.cod_sec = costos.cod_sec AND
|
||||
a.status_t is null
|
||||
|
||||
IF status >= 0 THEN
|
||||
IF status = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_n
|
||||
END IF
|
||||
ELSE
|
||||
CALL integridad()
|
||||
|
||||
IF bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
RETURN
|
||||
END IF
|
||||
END IF
|
||||
DISPLAY BY NAME articulos.descrip_esp,articulos.unidad_med
|
||||
END IF
|
||||
|
||||
AFTER FIELD costo_st
|
||||
DISPLAY costos.costo_st USING "##,###,###.####" AT 13,17
|
||||
IF costos.costo_st IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD costo_st
|
||||
END IF
|
||||
|
||||
AFTER INPUT
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
IF costos.costo_st IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD costo_st
|
||||
ELSE
|
||||
INSERT INTO istb00013 VALUES (costos.mes_ini,costos.mes_fin,
|
||||
costos.ano,costos.cod_n,costos.cod_grupo,
|
||||
costos.cod_tipo,costos.cod_sec,costos.costo_st,
|
||||
null,USER,CURRENT,null, null)
|
||||
|
||||
CALL integridad()
|
||||
|
||||
IF bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
LET numero_msg = 1
|
||||
CALL msg(numero_msg)
|
||||
CLEAR FORM
|
||||
LET costos.mes_ini = NULL
|
||||
LET costos.mes_fin = NULL
|
||||
LET costos.ano = NULL
|
||||
LET costos.cod_n = NULL
|
||||
LET costos.cod_grupo = NULL
|
||||
LET costos.cod_tipo = NULL
|
||||
LET costos.cod_sec = NULL
|
||||
LET costos.costo_st = NULL
|
||||
NEXT FIELD mes_ini
|
||||
|
||||
END IF
|
||||
END INPUT
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION ispcmf013()
|
||||
|
||||
#WHENEVER ERROR CONTINUE
|
||||
## Aqui se prepara para la captura del criterio de seleccion
|
||||
|
||||
CONSTRUCT criterio ON c.mes_ini,c.mes_fin,c.ano,
|
||||
c.cod_n,c.cod_grupo,
|
||||
c.cod_tipo,c.cod_sec,c.costo_st
|
||||
FROM mes_ini,mes_fin,ano,
|
||||
cod_n,cod_grupo,
|
||||
cod_tipo,cod_sec,costo_st
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
LET SELEC = "SELECT UNIQUE c.mes_ini,c.mes_fin,c.ano, ",
|
||||
" d.cod_n,d.cod_grupo,d.cod_tipo, ",
|
||||
" d.cod_sec,c.costo_st,c.us_crea,",
|
||||
"c.fech_crea, ",
|
||||
" c.us_mod,c.fech_mod ",
|
||||
" FROM istb00013 c, intb00001 d where ",
|
||||
"c.cod_n = d.cod_n and ",
|
||||
"c.cod_grupo = d.cod_grupo and ",
|
||||
"c.cod_tipo = d.cod_tipo and ",
|
||||
"c.cod_sec = d.cod_sec and ",
|
||||
"c.status_t is null and ",
|
||||
criterio clipped,
|
||||
" ORDER BY 4,5,6,7"
|
||||
|
||||
PREPARE busca FROM selec
|
||||
DECLARE datos SCROLL CURSOR FOR busca
|
||||
OPEN datos
|
||||
CALL integridad()
|
||||
|
||||
IF bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
FETCH FIRST datos INTO costos.*
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
RETURN
|
||||
END IF
|
||||
SELECT descrip INTO descrip1 FROM mestable
|
||||
WHERE mes = costos.mes_ini and
|
||||
status_t is null
|
||||
DISPLAY BY NAME descrip1
|
||||
|
||||
SELECT descrip INTO descrip2 FROM mestable
|
||||
WHERE mes = costos.mes_fin and
|
||||
status_t is null
|
||||
DISPLAY BY NAME descrip2
|
||||
|
||||
SELECT descrip_esp,unidad_med
|
||||
INTO articulos.descrip_esp,articulos.unidad_med
|
||||
FROM intb00001 a, istb00002 b
|
||||
WHERE a.cod_n = b.cod_n AND
|
||||
a.cod_grupo = b.cod_grupo AND
|
||||
a.cod_tipo = b.cod_tipo AND
|
||||
a.cod_sec = b.cod_sec AND
|
||||
b.cod_n = costos.cod_n AND
|
||||
b.cod_grupo = costos.cod_grupo AND
|
||||
b.cod_tipo = costos.cod_tipo AND
|
||||
b.cod_sec = costos.cod_sec
|
||||
DISPLAY BY NAME costos.*,articulos.descrip_esp,articulos.unidad_med
|
||||
DISPLAY costos.costo_st USING "##,###,###.####" AT 13,17
|
||||
|
||||
|
||||
MENU "OPCIONES"
|
||||
COMMAND "Siguiente"
|
||||
"Presenta en pantalla el proximo registro encontrado"
|
||||
FETCH NEXT datos INTO costos.*
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 4
|
||||
CALL msg(numero_msg)
|
||||
END IF
|
||||
SELECT descrip INTO descrip1 FROM mestable
|
||||
WHERE mes = costos.mes_ini and
|
||||
status_t is null
|
||||
DISPLAY BY NAME descrip1
|
||||
|
||||
SELECT descrip INTO descrip2 FROM mestable
|
||||
WHERE mes = costos.mes_fin and
|
||||
status_t is null
|
||||
DISPLAY BY NAME descrip2
|
||||
|
||||
SELECT descrip_esp,unidad_med
|
||||
INTO articulos.descrip_esp,articulos.unidad_med
|
||||
FROM intb00001 a, istb00002 b
|
||||
WHERE a.cod_n = b.cod_n AND
|
||||
a.cod_grupo = b.cod_grupo AND
|
||||
a.cod_tipo = b.cod_tipo AND
|
||||
a.cod_sec = b.cod_sec AND
|
||||
b.cod_n = costos.cod_n AND
|
||||
b.cod_grupo = costos.cod_grupo AND
|
||||
b.cod_tipo = costos.cod_tipo AND
|
||||
b.cod_sec = costos.cod_sec
|
||||
DISPLAY BY NAME costos.*,articulos.descrip_esp,articulos.unidad_med
|
||||
DISPLAY costos.costo_st USING "##,###,###.####" AT 13,17
|
||||
|
||||
COMMAND "Anterior"
|
||||
"Presenta en pantalla el registro anterior encontrado"
|
||||
FETCH PREVIOUS datos INTO costos.*
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 5
|
||||
CALL msg(numero_msg)
|
||||
END IF
|
||||
SELECT descrip INTO descrip1 FROM mestable
|
||||
WHERE mes = costos.mes_ini and
|
||||
status_t is null
|
||||
DISPLAY BY NAME descrip1
|
||||
|
||||
SELECT descrip INTO descrip2 FROM mestable
|
||||
WHERE mes = costos.mes_fin and
|
||||
status_t is null
|
||||
DISPLAY BY NAME descrip2
|
||||
|
||||
SELECT descrip_esp,unidad_med
|
||||
INTO articulos.descrip_esp,articulos.unidad_med
|
||||
FROM intb00001 a, istb00002 b
|
||||
WHERE a.cod_n = b.cod_n AND
|
||||
a.cod_grupo = b.cod_grupo AND
|
||||
a.cod_tipo = b.cod_tipo AND
|
||||
a.cod_sec = b.cod_sec AND
|
||||
b.cod_n = costos.cod_n AND
|
||||
b.cod_grupo = costos.cod_grupo AND
|
||||
b.cod_tipo = costos.cod_tipo AND
|
||||
b.cod_sec = costos.cod_sec
|
||||
DISPLAY BY NAME costos.*,articulos.descrip_esp,articulos.unidad_med
|
||||
DISPLAY costos.costo_st USING "##,###,###.####" AT 13,17
|
||||
|
||||
COMMAND "Primero"
|
||||
"Presenta en pantalla el primer registro encontrado"
|
||||
FETCH FIRST datos INTO costos.*
|
||||
SELECT descrip INTO descrip1 FROM mestable
|
||||
WHERE mes = costos.mes_ini and
|
||||
status_t is null
|
||||
DISPLAY BY NAME descrip1
|
||||
|
||||
SELECT descrip INTO descrip2 FROM mestable
|
||||
WHERE mes = costos.mes_fin and
|
||||
status_t is null
|
||||
DISPLAY BY NAME descrip2
|
||||
|
||||
SELECT descrip_esp,unidad_med
|
||||
INTO articulos.descrip_esp,articulos.unidad_med
|
||||
FROM intb00001 a, istb00002 b
|
||||
WHERE a.cod_n = b.cod_n AND
|
||||
a.cod_grupo = b.cod_grupo AND
|
||||
a.cod_tipo = b.cod_tipo AND
|
||||
a.cod_sec = b.cod_sec AND
|
||||
b.cod_n = costos.cod_n AND
|
||||
b.cod_grupo = costos.cod_grupo AND
|
||||
b.cod_tipo = costos.cod_tipo AND
|
||||
b.cod_sec = costos.cod_sec
|
||||
DISPLAY BY NAME costos.*,articulos.descrip_esp,articulos.unidad_med
|
||||
DISPLAY costos.costo_st USING "##,###,###.####" AT 13,17
|
||||
LET numero_msg = 5
|
||||
CALL msg(numero_msg)
|
||||
|
||||
COMMAND "Ultimo"
|
||||
"Presenta en pantalla el ultimo registro encontrado"
|
||||
FETCH LAST datos INTO costos.*
|
||||
SELECT descrip INTO descrip1 FROM mestable
|
||||
WHERE mes = costos.mes_ini and
|
||||
status_t is null
|
||||
DISPLAY BY NAME descrip1
|
||||
|
||||
SELECT descrip INTO descrip2 FROM mestable
|
||||
WHERE mes = costos.mes_fin and
|
||||
status_t is null
|
||||
DISPLAY BY NAME descrip2
|
||||
|
||||
SELECT descrip_esp,unidad_med
|
||||
INTO articulos.descrip_esp,articulos.unidad_med
|
||||
FROM intb00001 a, istb00002 b
|
||||
WHERE a.cod_n = b.cod_n AND
|
||||
a.cod_grupo = b.cod_grupo AND
|
||||
a.cod_tipo = b.cod_tipo AND
|
||||
a.cod_sec = b.cod_sec AND
|
||||
b.cod_n = costos.cod_n AND
|
||||
b.cod_grupo = costos.cod_grupo AND
|
||||
b.cod_tipo = costos.cod_tipo AND
|
||||
b.cod_sec = costos.cod_sec
|
||||
DISPLAY BY NAME costos.*,articulos.descrip_esp,articulos.unidad_med
|
||||
DISPLAY costos.costo_st USING "##,###,###.####" AT 13,17
|
||||
LET numero_msg = 4
|
||||
CALL msg(numero_msg)
|
||||
|
||||
COMMAND "Escoger"
|
||||
"<Esc> Actualiza Registro <Supr> Cancela Operacion"
|
||||
INPUT BY NAME costos.costo_st,
|
||||
costos.us_crea,
|
||||
costos.fech_crea,
|
||||
costos.us_mod,
|
||||
costos.fech_mod WITHOUT DEFAULTS
|
||||
|
||||
AFTER FIELD costo_st
|
||||
IF costos.costo_st IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD costo_st
|
||||
END IF
|
||||
|
||||
|
||||
## Verifica si el usuario presiono la tecla <Supr>
|
||||
AFTER INPUT
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
UPDATE istb00013 SET costo_st = costos.costo_st,
|
||||
us_mod = USER,
|
||||
fech_mod = CURRENT
|
||||
WHERE cod_n = costos.cod_n and
|
||||
cod_grupo = costos.cod_grupo and
|
||||
cod_tipo = costos.cod_tipo and
|
||||
cod_sec = costos.cod_sec
|
||||
|
||||
LET numero_msg = 13
|
||||
CALL msg(numero_msg)
|
||||
EXIT INPUT
|
||||
END INPUT
|
||||
|
||||
COMMAND KEY ("L") "eLiminar"
|
||||
UPDATE istb00013 SET status_t = "E"
|
||||
WHERE cod_n = costos.cod_n and
|
||||
cod_grupo = costos.cod_grupo and
|
||||
cod_tipo = costos.cod_tipo and
|
||||
cod_sec = costos.cod_sec
|
||||
|
||||
LET numero_msg = 39
|
||||
CALL msg(numero_msg)
|
||||
|
||||
COMMAND "Retornar"
|
||||
"Retorna al menu anterior"
|
||||
CLEAR FORM
|
||||
EXIT MENU
|
||||
|
||||
END MENU
|
||||
END FUNCTION
|
||||
@@ -0,0 +1,665 @@
|
||||
{
|
||||
--------------------------------------------------------------------------
|
||||
PROGRAMA : ISPRMT016
|
||||
OBJETIVO : Programa Captura Documento Movimiento:
|
||||
DEVOLUCION A SUPLIDOR
|
||||
de Inventario de Suministro.
|
||||
PROGRAMADOR : Juan Fco. Soto (Johnny)
|
||||
FECHA REALIZACION : Octubre 22, 1993.
|
||||
--------------------------------------------------------------------------
|
||||
}
|
||||
GLOBALS
|
||||
"isprgb000.4gl"
|
||||
|
||||
FUNCTION isprmt016()
|
||||
DEFINE fecha CHAR(10)
|
||||
DEFINE hora CHAR(5)
|
||||
CLEAR SCREEN
|
||||
OPTIONS
|
||||
ERROR LINE 24,
|
||||
FORM LINE 4,
|
||||
COMMENT LINE 22,
|
||||
PROMPT LINE 23
|
||||
LET fecha = today USING "dd/mm/yyyy"
|
||||
LET hora = time
|
||||
DISPLAY "R A Y . O . V A C D O M I N I C A N A" AT 1,21
|
||||
ATTRIBUTE (REVERSE,BLUE)
|
||||
DISPLAY fecha AT 1,70 ATTRIBUTE (RED)
|
||||
DISPLAY hora AT 2,73 ATTRIBUTE (RED)
|
||||
DISPLAY "Suministro(s) Devuelto(s) al Suplidor" AT 2,21 ATTRIBUTE(BLACK)
|
||||
DISPLAY "isprmt016" AT 1,3 ATTRIBUTE (RED)
|
||||
DISPLAY "<Esc> Adiciona Registro" AT 3,2 ATTRIBUTE (RED,REVERSE)
|
||||
DISPLAY "<Supr> Cancela Operacion" AT 3,56 ATTRIBUTE (RED,REVERSE)
|
||||
OPEN FORM isfmmt016 FROM "isfmmt016"
|
||||
DISPLAY FORM isfmmt016
|
||||
|
||||
LET actual = "UPDATE istb00002 SET existencia = existencia + ? ",
|
||||
"WHERE cod_n = ? and ",
|
||||
"cod_grupo = ? and ",
|
||||
"cod_tipo = ? and ",
|
||||
"cod_sec = ? "
|
||||
|
||||
CALL isprad016()
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION isprad016()
|
||||
DEFINE idx1 SMALLINT
|
||||
DEFINE r_cantidad,recibida,ordenada,total_cantidad,porciento DECIMAL(12,2)
|
||||
DEFINE devuelta CHAR(1)
|
||||
|
||||
#WHENEVER ERROR CONTINUE
|
||||
|
||||
LET int_flag = FALSE
|
||||
LET OPC = null
|
||||
|
||||
INITIALIZE datos_gen.* TO NULL
|
||||
|
||||
PREPARE actualiza FROM actual
|
||||
|
||||
LABEL otra_vez:
|
||||
LABEL vuelve:
|
||||
|
||||
IF (OPC = "S" OR OPC = "s") OR opc is null THEN
|
||||
INITIALIZE datos_gen.* TO NULL
|
||||
END IF
|
||||
|
||||
LET datos_gen.cod_mov = cod_mov_ant
|
||||
LET datos_gen.cod_mov = 38
|
||||
LET datos_gen.fecha = today
|
||||
LET devuelta = "N"
|
||||
|
||||
INPUT BY NAME datos_gen.num_doc,datos_gen.tipo,datos_gen.orden_compra,
|
||||
datos_gen.fecha,datos_gen.bodega
|
||||
WITHOUT DEFAULTS
|
||||
|
||||
AFTER FIELD bodega
|
||||
|
||||
SELECT *FROM istb00009 WHERE cod_bodega = datos_gen.bodega
|
||||
IF status >= 0 THEN
|
||||
IF status = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD bodega
|
||||
END IF
|
||||
ELSE
|
||||
CALL integridad()
|
||||
|
||||
IF bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
RETURN
|
||||
END IF
|
||||
END IF
|
||||
|
||||
AFTER FIELD fecha
|
||||
|
||||
LET datos_gen.bodega = 1
|
||||
DISPLAY BY NAME datos_gen.bodega
|
||||
|
||||
IF datos_gen.fecha is null THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD fecha
|
||||
END IF
|
||||
|
||||
LET p_fechas = datos_gen.fecha using "ddmmyyyy"
|
||||
CALL prd(p_fechas)
|
||||
IF bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
NEXT FIELD fecha
|
||||
END IF
|
||||
|
||||
AFTER FIELD num_doc
|
||||
|
||||
IF datos_gen.num_doc IS NULL then
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD num_doc
|
||||
ELSE
|
||||
SELECT * FROM istb00005 WHERE cod_mov = datos_gen.cod_mov and
|
||||
status_t is null
|
||||
IF status >= 0 THEN
|
||||
IF status = NOTFOUND THEN
|
||||
LET numero_msg = 34
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD num_doc
|
||||
END IF
|
||||
ELSE
|
||||
CALL integridad()
|
||||
|
||||
if bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
RETURN
|
||||
end if
|
||||
END IF
|
||||
|
||||
SELECT UNIQUE cod_sp,cod_sp_sec,fecha,tipo,orden_compra
|
||||
INTO datos_gen.cod_sp,datos_gen.cod_sp_sec,
|
||||
datos_gen.fecha,datos_gen.tipo,datos_gen.orden_compra
|
||||
FROM istb00006
|
||||
WHERE
|
||||
num_doc = datos_gen.num_doc and
|
||||
cod_mov = datos_gen.cod_mov and
|
||||
status_t is null
|
||||
|
||||
IF status >= 0 THEN
|
||||
IF status != NOTFOUND THEN
|
||||
SELECT UNIQUE nom_sp INTO datos_gen.nom_sp FROM cotb00001 WHERE
|
||||
cod_sp = datos_gen.cod_sp and
|
||||
cod_sp_sec = datos_gen.cod_sp_sec and
|
||||
status_t is null
|
||||
LET numero_msg = 12
|
||||
CALL msg(numero_msg)
|
||||
DISPLAY BY NAME datos_gen.cod_sp,datos_gen.fecha,
|
||||
datos_gen.nom_sp,datos_gen.cod_sp_sec,
|
||||
datos_gen.tipo,datos_gen.orden_compra
|
||||
NEXT FIELD num_doc
|
||||
END IF
|
||||
ELSE
|
||||
CALL integridad()
|
||||
|
||||
if bandera = 1 THEN
|
||||
CLEAR SCREEN
|
||||
RETURN
|
||||
end if
|
||||
END IF
|
||||
|
||||
IF OPC = "S" OR OPC = "s" OR OPC is null THEN
|
||||
INITIALIZE datos_gen.cod_sp, datos_gen.nom_sp,
|
||||
datos_gen.cod_sp_sec,datos_gen.tipo,
|
||||
datos_gen.orden_compra
|
||||
TO NULL
|
||||
|
||||
DISPLAY BY NAME datos_gen.cod_sp,
|
||||
datos_gen.nom_sp,datos_gen.cod_sp_sec,
|
||||
datos_gen.tipo,datos_gen.orden_compra
|
||||
END IF
|
||||
END IF
|
||||
|
||||
AFTER FIELD tipo
|
||||
IF datos_gen.tipo IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD tipo
|
||||
END IF
|
||||
|
||||
AFTER FIELD orden_compra
|
||||
|
||||
# Verifica que la orden de compra este en el archivo y
|
||||
# ademas obliga a que el usuario tenga que digitar este campo
|
||||
|
||||
IF datos_gen.orden_compra IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD orden_compra
|
||||
ELSE
|
||||
SELECT unique a.orden_compra FROM istb00006 a
|
||||
WHERE a.tipo = datos_gen.tipo AND
|
||||
a.orden_compra = datos_gen.orden_compra
|
||||
|
||||
IF status >= 0 THEN
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 73
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD tipo
|
||||
END IF
|
||||
ELSE
|
||||
CALL integridad()
|
||||
|
||||
if bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
RETURN
|
||||
end if
|
||||
END IF
|
||||
|
||||
SELECT cod_sp,cod_sp_sec,cierre INTO datos_gen.cod_sp,datos_gen.cod_sp_sec,
|
||||
devuelta
|
||||
FROM cotb00014 WHERE tipo = datos_gen.tipo AND
|
||||
num_oc = datos_gen.orden_compra
|
||||
|
||||
IF status >= 0 THEN
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD orden_compra
|
||||
END IF
|
||||
ELSE
|
||||
CALL integridad()
|
||||
|
||||
if bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
RETURN
|
||||
end if
|
||||
END IF
|
||||
|
||||
SELECT UNIQUE nom_sp INTO datos_gen.nom_sp FROM cotb00001 WHERE
|
||||
cod_sp = datos_gen.cod_sp and
|
||||
cod_sp_sec = datos_gen.cod_sp_sec and
|
||||
status_t is null
|
||||
|
||||
DISPLAY BY NAME datos_gen.nom_sp,datos_gen.cod_sp,datos_gen.cod_sp_sec
|
||||
END IF
|
||||
|
||||
AFTER INPUT
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
|
||||
FOR idx = 1 to arr_count()
|
||||
LET movi[idx].cod_n = null
|
||||
LET movi[idx].cod_grupo = null
|
||||
LET movi[idx].cod_tipo = null
|
||||
LET movi[idx].cod_sec = null
|
||||
LET movi[idx].cantidad_1 = null
|
||||
LET movi[idx].cantidad_2 = null
|
||||
LET movi[idx].unidad_med = null
|
||||
LET movi[idx].descrip_esp = null
|
||||
END FOR
|
||||
SLEEP 1
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
IF datos_gen.num_doc IS NULL then
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD num_doc
|
||||
ELSE
|
||||
SELECT UNIQUE num_doc FROM istb00006 WHERE num_doc = datos_gen.num_doc and
|
||||
cod_mov = datos_gen.cod_mov and
|
||||
status_t is null
|
||||
IF status >= 0 THEN
|
||||
IF status != NOTFOUND THEN
|
||||
LET numero_msg = 12
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD num_doc
|
||||
END IF
|
||||
ELSE
|
||||
CALL integridad()
|
||||
|
||||
if bandera = 1 THEN
|
||||
CLEAR SCREEN
|
||||
RETURN
|
||||
end if
|
||||
END IF
|
||||
END IF
|
||||
|
||||
# Verifica que la orden de compra este en el archivo y
|
||||
# ademas obliga a que el usuario tenga que digitar este campo
|
||||
|
||||
IF datos_gen.orden_compra IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD orden_compra
|
||||
ELSE
|
||||
SELECT cod_sp,cod_sp_sec INTO datos_gen.cod_sp,datos_gen.cod_sp_sec
|
||||
FROM cotb00014 WHERE tipo = datos_gen.tipo AND
|
||||
num_oc = datos_gen.orden_compra
|
||||
|
||||
IF status >= 0 THEN
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD orden_compra
|
||||
END IF
|
||||
ELSE
|
||||
CALL integridad()
|
||||
|
||||
if bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
RETURN
|
||||
end if
|
||||
END IF
|
||||
|
||||
SELECT UNIQUE nom_sp INTO datos_gen.nom_sp FROM cotb00001 WHERE
|
||||
cod_sp = datos_gen.cod_sp and
|
||||
cod_sp_sec = datos_gen.cod_sp_sec and
|
||||
status_t is null
|
||||
|
||||
DISPLAY BY NAME datos_gen.nom_sp,datos_gen.cod_sp,datos_gen.cod_sp_sec
|
||||
|
||||
END IF
|
||||
EXIT INPUT
|
||||
END INPUT
|
||||
|
||||
INITIALIZE ant_art.* TO NULL
|
||||
|
||||
IF opc = "S" or opc = "s" OR opc IS NULL THEN
|
||||
FOR idx = 1 to arr_count()
|
||||
LET movi[idx].cod_n = null
|
||||
LET movi[idx].cod_grupo = null
|
||||
LET movi[idx].cod_tipo = null
|
||||
LET movi[idx].cod_sec = null
|
||||
LET movi[idx].cantidad_2 = null
|
||||
LET movi[idx].cantidad_1 = null
|
||||
LET movi[idx].unidad_med = null
|
||||
LET movi[idx].descrip_esp = null
|
||||
END FOR
|
||||
END IF
|
||||
|
||||
IF opc = "S" or opc = "s" or opc is null THEN
|
||||
DECLARE materiales CURSOR FOR
|
||||
SELECT a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,a.cantidad,a.cantidad,
|
||||
b.unidad_med,b.descrip_esp
|
||||
FROM cotb00015 a,intb00001 b
|
||||
WHERE a.tipo = datos_gen.tipo and
|
||||
a.num_oc = datos_gen.orden_compra and
|
||||
a.cod_n = b.cod_n and
|
||||
a.cod_grupo = b.cod_grupo and
|
||||
a.cod_tipo = b.cod_tipo and
|
||||
a.cod_sec = b.cod_sec
|
||||
|
||||
LET idx = 1
|
||||
FOREACH materiales INTO movi[idx].*
|
||||
IF status = notfound THEN
|
||||
EXIT FOREACH
|
||||
END IF
|
||||
|
||||
IF OPC = "S" OR opc = "s" or opc is null THEN
|
||||
LET movi[idx].cantidad_1 = null
|
||||
END IF
|
||||
|
||||
LET idx = idx + 1
|
||||
END FOREACH
|
||||
|
||||
CALL set_count(idx - 1)
|
||||
END IF
|
||||
LABEL volver:
|
||||
INPUT ARRAY movi WITHOUT DEFAULTS FROM s_movi1.*
|
||||
|
||||
|
||||
AFTER FIELD cantidad_1
|
||||
|
||||
LET p_act = arr_curr()
|
||||
LET scr_l = scr_line()
|
||||
|
||||
IF movi[p_act].cantidad_1 is not null THEN
|
||||
|
||||
SELECT pto_reorden,existencia INTO chequea.* FROM istb00002
|
||||
WHERE
|
||||
cod_n = movi[p_act].cod_n and
|
||||
cod_grupo = movi[p_act].cod_grupo and
|
||||
cod_tipo = movi[p_act].cod_tipo and
|
||||
cod_sec = movi[p_act].cod_sec and
|
||||
status_t is null
|
||||
|
||||
CALL integridad()
|
||||
|
||||
if bandera = 1 THEN
|
||||
CLEAR SCREEN
|
||||
RETURN
|
||||
end if
|
||||
|
||||
IF movi[p_act].cantidad_1 > chequea.existe THEN
|
||||
LET numero_msg = 30
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_n
|
||||
END IF
|
||||
|
||||
LET cant = chequea.existe - movi[p_act].cantidad_1
|
||||
|
||||
IF cant <= chequea.pto THEN
|
||||
LET numero_msg = 31
|
||||
CALL msg(numero_msg)
|
||||
LET cant = 0
|
||||
END IF
|
||||
|
||||
|
||||
# Verifica que la cantidad recibida mas las que se han recibida de
|
||||
# la orden no exceda de un 10% de la cantidad total de la orden
|
||||
|
||||
SELECT sum(cantidad_2) INTO recibida FROM istb00006
|
||||
WHERE tipo = datos_gen.tipo and
|
||||
orden_compra = datos_gen.orden_compra and
|
||||
cod_n = movi[p_act].cod_n and
|
||||
cod_grupo = movi[p_act].cod_grupo and
|
||||
cod_tipo = movi[p_act].cod_tipo and
|
||||
cod_sec = movi[p_act].cod_sec
|
||||
|
||||
IF recibida is null THEN
|
||||
LET numero_msg = 73
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cantidad_1
|
||||
END IF
|
||||
|
||||
SELECT cantidad INTO ordenada FROM cotb00015
|
||||
WHERE tipo = datos_gen.tipo and
|
||||
num_oc = datos_gen.orden_compra and
|
||||
cod_n = movi[p_act].cod_n and
|
||||
cod_grupo = movi[p_act].cod_grupo and
|
||||
cod_tipo = movi[p_act].cod_tipo and
|
||||
cod_sec = movi[p_act].cod_sec
|
||||
|
||||
IF ordenada is null THEN
|
||||
LET ordenada = 0
|
||||
END IF
|
||||
LET porciento = ordenada * 0.10
|
||||
|
||||
IF movi[p_act].cantidad_1 > recibida THEN
|
||||
LET numero_msg = 33
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cantidad_1
|
||||
END IF
|
||||
|
||||
LET r_cantidad = recibida + porciento
|
||||
|
||||
IF movi[p_act].cantidad_1 > r_cantidad THEN
|
||||
LET numero_msg = 33
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cantidad_1
|
||||
END IF
|
||||
END IF
|
||||
|
||||
AFTER INPUT
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = false
|
||||
FOR idx = 1 to arr_count()
|
||||
LET movi[idx].cod_n = null
|
||||
LET movi[idx].cod_grupo = null
|
||||
LET movi[idx].cod_tipo = null
|
||||
LET movi[idx].cod_sec = null
|
||||
LET movi[idx].cantidad_1 = null
|
||||
LET movi[idx].cantidad_2 = null
|
||||
LET movi[idx].unidad_med = null
|
||||
LET movi[idx].descrip_esp = null
|
||||
END FOR
|
||||
SLEEP 1
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
|
||||
IF movi[p_act].cantidad_1 is not null THEN
|
||||
|
||||
SELECT pto_reorden,existencia INTO chequea.* FROM istb00002
|
||||
WHERE
|
||||
cod_n = movi[p_act].cod_n and
|
||||
cod_grupo = movi[p_act].cod_grupo and
|
||||
cod_tipo = movi[p_act].cod_tipo and
|
||||
cod_sec = movi[p_act].cod_sec and
|
||||
status_t is null
|
||||
|
||||
CALL integridad()
|
||||
|
||||
if bandera = 1 THEN
|
||||
CLEAR SCREEN
|
||||
RETURN
|
||||
end if
|
||||
IF movi[p_act].cantidad_1 > chequea.existe THEN
|
||||
LET numero_msg = 30
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_n
|
||||
END IF
|
||||
|
||||
LET cant = chequea.existe - movi[p_act].cantidad_1
|
||||
|
||||
IF cant <= chequea.pto THEN
|
||||
LET numero_msg = 31
|
||||
CALL msg(numero_msg)
|
||||
LET cant = 0
|
||||
END IF
|
||||
|
||||
# Verifica que la cantidad recibida mas las que se han recibida de
|
||||
# la orden no exceda de un 10% de la cantidad total de la orden
|
||||
|
||||
SELECT sum(cantidad_2) INTO recibida FROM istb00006
|
||||
WHERE tipo = datos_gen.tipo and
|
||||
orden_compra = datos_gen.orden_compra and
|
||||
cod_n = movi[p_act].cod_n and
|
||||
cod_grupo = movi[p_act].cod_grupo and
|
||||
cod_tipo = movi[p_act].cod_tipo and
|
||||
cod_sec = movi[p_act].cod_sec
|
||||
|
||||
IF status >= 0 THEN
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 73
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cantidad_1
|
||||
END IF
|
||||
ELSE
|
||||
CALL integridad()
|
||||
|
||||
if bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
RETURN
|
||||
end if
|
||||
END IF
|
||||
|
||||
SELECT cantidad INTO ordenada FROM cotb00015
|
||||
WHERE tipo = datos_gen.tipo and
|
||||
num_oc= datos_gen.orden_compra and
|
||||
cod_n = movi[p_act].cod_n and
|
||||
cod_grupo = movi[p_act].cod_grupo and
|
||||
cod_tipo = movi[p_act].cod_tipo and
|
||||
cod_sec = movi[p_act].cod_sec
|
||||
|
||||
IF recibida is null THEN
|
||||
LET recibida = 0
|
||||
END IF
|
||||
|
||||
IF ordenada is null THEN
|
||||
LET ordenada = 0
|
||||
END IF
|
||||
LET porciento = ordenada * 0.10
|
||||
LET r_cantidad = recibida + porciento
|
||||
|
||||
IF movi[p_act].cantidad_1 > r_cantidad THEN
|
||||
LET numero_msg = 33
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cantidad_1
|
||||
END IF
|
||||
END IF
|
||||
|
||||
LET total_cantidad = 0
|
||||
|
||||
FOR idx = 1 to arr_count()
|
||||
IF movi[idx].cantidad_1 is not null THEN
|
||||
LET total_cantidad = movi[idx].cantidad_1 + total_cantidad
|
||||
END IF
|
||||
END FOR
|
||||
|
||||
IF movi[p_act].cod_n is null THEN
|
||||
CALL limpia()
|
||||
END IF
|
||||
IF movi[p_act].cod_grupo is null THEN
|
||||
CALL limpia()
|
||||
END IF
|
||||
IF movi[p_act].cod_tipo is null THEN
|
||||
CALL limpia()
|
||||
END IF
|
||||
IF movi[p_act].cod_sec is null THEN
|
||||
CALL limpia()
|
||||
END IF
|
||||
EXIT INPUT
|
||||
END INPUT
|
||||
|
||||
PROMPT "Toda la Informacion Esta Correcta? (S/N)" FOR CHAR opc
|
||||
IF OPC = "S" or OPC = "s" THEN
|
||||
SELECT sum(cantidad_2) INTO recibida FROM istb00006
|
||||
WHERE orden_compra = datos_gen.orden_compra
|
||||
|
||||
SELECT sum(cantidad) INTO ordenada FROM cotb00015
|
||||
WHERE num_oc = datos_gen.orden_compra
|
||||
|
||||
IF recibida is null THEN
|
||||
LET recibida = 0
|
||||
END IF
|
||||
|
||||
IF ordenada is null THEN
|
||||
LET ordenada = 0
|
||||
END IF
|
||||
|
||||
LET porciento = ordenada * 0.10
|
||||
LET r_cantidad = ordenada + porciento
|
||||
|
||||
|
||||
IF total_cantidad >= r_cantidad THEN
|
||||
LET devuelta = "S"
|
||||
END IF
|
||||
|
||||
FOR idx = 1 TO arr_count()
|
||||
IF movi[idx].cantidad_1 is not null THEN
|
||||
|
||||
LET movi[idx].cantidad_1 = movi[idx].cantidad_1 * -1
|
||||
INSERT INTO istb00006 VALUES
|
||||
(datos_gen.num_doc,datos_gen.fecha,datos_gen.fact_no,
|
||||
datos_gen.conduce_no,datos_gen.orden_compra,datos_gen.tipo,
|
||||
datos_gen.cod_sp,datos_gen.cod_sp_sec,datos_gen.cod_mov,
|
||||
movi[idx].cod_n,movi[idx].cod_grupo,
|
||||
movi[idx].cod_tipo,movi[idx].cod_sec,movi[idx].cantidad_2,
|
||||
movi[idx].cantidad_1,null,null,null,
|
||||
ultimo.cond_recep,ultimo.uso_tiempo,datos_gen.bodega,
|
||||
null,user,current,null,null)
|
||||
CALL integridad()
|
||||
|
||||
if bandera = 1 THEN
|
||||
CLEAR SCREEN
|
||||
RETURN
|
||||
end if
|
||||
|
||||
EXECUTE actualiza USING movi[idx].cantidad_2,
|
||||
movi[idx].cod_n,movi[idx].cod_grupo,
|
||||
movi[idx].cod_tipo,movi[idx].cod_sec
|
||||
CALL integridad()
|
||||
|
||||
if bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
RETURN
|
||||
end if
|
||||
END IF
|
||||
END FOR
|
||||
|
||||
IF devuelta = "S" OR devuelta = "D" THEN
|
||||
UPDATE cotb00014 set cierre = "D"
|
||||
WHERE tipo = datos_gen.tipo AND
|
||||
num_oc = datos_gen.orden_compra
|
||||
END IF
|
||||
|
||||
|
||||
FOR idx = 1 to arr_count()
|
||||
LET movi[idx].cod_n = null
|
||||
LET movi[idx].cod_grupo = null
|
||||
LET movi[idx].cod_tipo = null
|
||||
LET movi[idx].cod_sec = null
|
||||
LET movi[idx].cantidad_1 = null
|
||||
LET movi[idx].cantidad_2 = null
|
||||
LET movi[idx].unidad_med = null
|
||||
LET movi[idx].descrip_esp = null
|
||||
DISPLAY movi[idx].cod_n to s_movi1[idx].cod_n
|
||||
DISPLAY movi[idx].cod_grupo to s_movi1[idx].cod_grupo
|
||||
DISPLAY movi[idx].cod_tipo to s_movi1[idx].cod_tipo
|
||||
DISPLAY movi[idx].cod_sec to s_movi1[idx].cod_sec
|
||||
DISPLAY movi[idx].descrip_esp to s_movi1[idx].descrip_esp
|
||||
DISPLAY movi[idx].unidad_med to s_movi1[idx].unidad_med
|
||||
END FOR
|
||||
LET numero_msg = 1
|
||||
CALL msg(numero_msg)
|
||||
CLEAR FORM
|
||||
ELSE
|
||||
GOTO otra_vez
|
||||
END IF
|
||||
GOTO vuelve
|
||||
END FUNCTION
|
||||
|
||||
@@ -0,0 +1,742 @@
|
||||
{
|
||||
----------------------------------------------------------------------------
|
||||
PROGRAMA : ISPRMT036
|
||||
OBJETIVO : Programa Captura Documento Movimiento:
|
||||
REQUISICION DE SUMINISTROS de Inventario de Suministros
|
||||
PROGRAMADOR : Ing. Juan Fco. Soto (Copiado del INPRMT016)
|
||||
FECHA REALIZACION : octubre 21, 1993.
|
||||
----------------------------------------------------------------------------
|
||||
}
|
||||
GLOBALS
|
||||
"isprgb000.4gl"
|
||||
|
||||
FUNCTION isprmt036()
|
||||
DEFINE fecha CHAR(10)
|
||||
DEFINE hora CHAR(5)
|
||||
CLEAR SCREEN
|
||||
OPTIONS
|
||||
ERROR LINE 24,
|
||||
FORM LINE 4,
|
||||
COMMENT LINE 22,
|
||||
PROMPT LINE 23
|
||||
LET fecha = today USING "dd/mm/yyyy"
|
||||
LET hora = time
|
||||
DISPLAY " R A Y . O . V A C D O M I N I C A N A " AT 1,21
|
||||
ATTRIBUTE (REVERSE,BLUE)
|
||||
DISPLAY fecha AT 1,70 ATTRIBUTE (RED)
|
||||
DISPLAY hora AT 2,73 ATTRIBUTE (RED)
|
||||
DISPLAY "Requisicion de Suministros" AT 2,27 ATTRIBUTE(BLACK)
|
||||
DISPLAY "isprmt036" AT 1,3 ATTRIBUTE (RED)
|
||||
DISPLAY "<Esc> Adiciona Registro" AT 3,2 ATTRIBUTE (RED,REVERSE)
|
||||
DISPLAY "<Supr> Cancela Operacion" AT 3,56 ATTRIBUTE (RED,REVERSE)
|
||||
OPEN FORM isfmmt036 FROM "isfmmt036"
|
||||
DISPLAY FORM isfmmt036
|
||||
|
||||
LET actual = "UPDATE istb00002 SET existencia = existencia - ? ",
|
||||
"WHERE cod_n = ? and ",
|
||||
"cod_grupo = ? and ",
|
||||
"cod_tipo = ? and ",
|
||||
"cod_sec = ? "
|
||||
|
||||
CALL isprad036()
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION isprad036()
|
||||
# WHENEVER ERROR CONTINUE
|
||||
LET opc = null
|
||||
LET int_flag = FALSE
|
||||
INITIALIZE datos1.* TO NULL
|
||||
PREPARE actualiza FROM actual
|
||||
|
||||
LABEL otra_vez:
|
||||
LABEL vuelve:
|
||||
IF (OPC = "S" OR OPC = "s") OR opc is null THEN
|
||||
INITIALIZE datos1.* TO NULL
|
||||
END IF
|
||||
|
||||
INPUT BY NAME datos1.* WITHOUT DEFAULTS
|
||||
|
||||
AFTER FIELD cod_mov
|
||||
IF datos1.cod_mov is null THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_mov
|
||||
END IF
|
||||
SELECT @descrip_mov INTO datos1.descrip_mov
|
||||
FROM istb00005
|
||||
WHERE @cod_mov = datos1.cod_mov and
|
||||
status_t is null
|
||||
IF status = notfound THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_mov
|
||||
END IF
|
||||
DISPLAY BY NAME datos1.descrip_mov
|
||||
|
||||
BEFORE FIELD bodega
|
||||
LET datos1.bodega = 1
|
||||
DISPLAY BY NAME datos1.bodega
|
||||
|
||||
AFTER FIELD bodega
|
||||
SELECT *FROM istb00009 WHERE cod_bodega = datos1.bodega
|
||||
IF status >= 0 THEN
|
||||
IF status = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD bodega
|
||||
END IF
|
||||
ELSE
|
||||
CALL integridad()
|
||||
|
||||
IF bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
RETURN
|
||||
END IF
|
||||
END IF
|
||||
BEFORE FIELD num_doc
|
||||
LET datos1.fecha = today
|
||||
DISPLAY BY NAME datos1.fecha
|
||||
|
||||
# Verifica que el numero del documento de entrada no este en el archivo de
|
||||
# movimientos.
|
||||
AFTER FIELD fecha
|
||||
IF datos1.fecha IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD fecha
|
||||
END IF
|
||||
|
||||
LET p_fechas = datos1.fecha using "ddmmyyyy"
|
||||
CALL prd()
|
||||
IF bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
NEXT FIELD fecha
|
||||
END IF
|
||||
|
||||
AFTER FIELD num_doc
|
||||
IF datos1.num_doc IS NULL then
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD num_doc
|
||||
ELSE
|
||||
SELECT * FROM istb00005 where cod_mov = 36
|
||||
and status_t is null
|
||||
IF status >= 0 THEN
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 34
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD num_doc
|
||||
END IF
|
||||
ELSE
|
||||
CALL integridad()
|
||||
|
||||
if bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
RETURN
|
||||
end if
|
||||
END IF
|
||||
SELECT UNIQUE depto_a,fecha INTO datos1.depto_a,datos1.fecha
|
||||
FROM istb00006 WHERE num_doc = datos1.num_doc and
|
||||
cod_mov = 36 AND
|
||||
status_t is null
|
||||
IF status >= 0 THEN
|
||||
IF STATUS != NOTFOUND THEN
|
||||
SELECT UNIQUE nom_dpto INTO datos1.nom_dpto FROM adtb00001
|
||||
WHERE departamento = datos1.depto_a
|
||||
and status_t is null
|
||||
LET numero_msg = 12
|
||||
CALL msg(numero_msg)
|
||||
DISPLAY BY NAME datos1.depto_a,datos1.fecha,datos1.nom_dpto
|
||||
NEXT FIELD num_doc
|
||||
END IF
|
||||
ELSE
|
||||
CALL integridad()
|
||||
|
||||
if bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
RETURN
|
||||
end if
|
||||
END IF
|
||||
IF OPC = "S" or OPC = "s" or opc is null THEN
|
||||
INITIALIZE datos1.depto_a,datos1.nom_dpto TO NULL
|
||||
DISPLAY BY NAME datos1.depto_a,datos1.nom_dpto
|
||||
END IF
|
||||
END IF
|
||||
|
||||
AFTER FIELD depto_a
|
||||
IF datos1.depto_a IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD depto_a
|
||||
ELSE
|
||||
SELECT UNIQUE nom_dpto INTO datos1.nom_dpto FROM adtb00001
|
||||
WHERE departamento = datos1.depto_a and
|
||||
status_t is null
|
||||
|
||||
IF status >= 0 THEN
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD depto_a
|
||||
END IF
|
||||
else
|
||||
CALL integridad()
|
||||
|
||||
if bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
RETURN
|
||||
end if
|
||||
END IF
|
||||
END IF
|
||||
DISPLAY BY NAME datos1.nom_dpto
|
||||
|
||||
AFTER INPUT
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
FOR idx = 1 to arr_count()
|
||||
LET movi[idx].cod_n = null
|
||||
LET movi[idx].cod_grupo = null
|
||||
LET movi[idx].cod_tipo = null
|
||||
LET movi[idx].cod_sec = null
|
||||
LET movi[idx].cantidad_1 = null
|
||||
LET movi[idx].cantidad_2 = null
|
||||
LET movi[idx].unidad_med = null
|
||||
LET movi[idx].descrip_esp = null
|
||||
END FOR
|
||||
SLEEP 3
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
IF datos1.num_doc IS NULL then
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD num_doc
|
||||
ELSE
|
||||
SELECT UNIQUE num_doc FROM istb00006
|
||||
WHERE num_doc = datos1.num_doc and
|
||||
cod_mov = 36 and
|
||||
status_t is null
|
||||
|
||||
IF status >= 0 THEN
|
||||
IF STATUS != NOTFOUND THEN
|
||||
LET numero_msg = 12
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD num_doc
|
||||
END IF
|
||||
else
|
||||
CALL integridad()
|
||||
|
||||
if bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
RETURN
|
||||
end if
|
||||
END IF
|
||||
END IF
|
||||
|
||||
IF datos1.depto_a IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD departamento
|
||||
ELSE
|
||||
SELECT UNIQUE nom_dpto INTO datos1.nom_dpto FROM adtb00001
|
||||
WHERE departamento = datos1.depto_a and
|
||||
status_t is null
|
||||
IF status >= 0 THEN
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD departamento
|
||||
END IF
|
||||
ELSE
|
||||
CALL integridad()
|
||||
|
||||
if bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
RETURN
|
||||
end if
|
||||
END IF
|
||||
END IF
|
||||
EXIT INPUT
|
||||
END INPUT
|
||||
|
||||
INITIALIZE ant_art.* TO NULL
|
||||
|
||||
IF opc = "S" or opc = "s" OR opc IS NULL THEN
|
||||
FOR idx = 1 to arr_count()
|
||||
LET movi[idx].cod_n = null
|
||||
LET movi[idx].cod_grupo = null
|
||||
LET movi[idx].cod_tipo = null
|
||||
LET movi[idx].cod_sec = null
|
||||
LET movi[idx].cantidad_2 = null
|
||||
LET movi[idx].cantidad_1 = null
|
||||
LET movi[idx].unidad_med = null
|
||||
LET movi[idx].descrip_esp = null
|
||||
END FOR
|
||||
END IF
|
||||
CALL integridad()
|
||||
|
||||
if bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
RETURN
|
||||
end if
|
||||
INPUT ARRAY movi WITHOUT DEFAULTS FROM s_movi1.*
|
||||
BEFORE ROW
|
||||
LET p_act = arr_curr()
|
||||
LET scr_l = scr_line()
|
||||
|
||||
AFTER ROW
|
||||
IF movi[p_act].cod_n is not null and
|
||||
movi[p_act].cod_grupo is not null and
|
||||
movi[p_act].cod_tipo is not null and
|
||||
movi[p_act].cod_sec is not null then
|
||||
|
||||
LET p_act = arr_curr()
|
||||
LET ant_art.cod_n = movi[p_act].cod_n
|
||||
LET ant_art.cod_grupo = movi[p_act].cod_grupo
|
||||
LET ant_art.cod_tipo = movi[p_act].cod_tipo
|
||||
LET ant_art.cod_sec = movi[p_act].cod_sec
|
||||
|
||||
FOR idx = 1 TO arr_count()
|
||||
IF idx != p_act THEN
|
||||
IF movi[idx].cod_n = ant_art.cod_n AND
|
||||
movi[idx].cod_grupo = ant_art.cod_grupo AND
|
||||
movi[idx].cod_tipo = ant_art.cod_tipo AND
|
||||
movi[idx].cod_sec = ant_art.cod_sec THEN
|
||||
LET numero_msg = 21
|
||||
CALL msg(numero_msg)
|
||||
LET p_act = p_act - 1
|
||||
NEXT FIELD cod_n
|
||||
END IF
|
||||
END IF
|
||||
END FOR
|
||||
|
||||
IF movi[p_act].cantidad_1 IS NULL and movi[p_act].cantidad_2 IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_n
|
||||
END IF
|
||||
END IF
|
||||
|
||||
LET ant_art.cod_n = movi[p_act].cod_n
|
||||
LET ant_art.cod_grupo = movi[p_act].cod_grupo
|
||||
LET ant_art.cod_tipo = movi[p_act].cod_tipo
|
||||
LET ant_art.cod_sec = movi[p_act].cod_sec
|
||||
|
||||
AFTER FIELD cod_n
|
||||
LET p_act = arr_curr()
|
||||
IF movi[p_act].cod_n is not null then
|
||||
LET ant_art.cod_n = movi[p_act].cod_n
|
||||
LET ant_art.cod_grupo = movi[p_act].cod_grupo
|
||||
LET ant_art.cod_tipo = movi[p_act].cod_tipo
|
||||
LET ant_art.cod_sec = movi[p_act].cod_sec
|
||||
|
||||
FOR idx = 1 TO arr_count()
|
||||
IF idx != p_act THEN
|
||||
IF movi[idx].cod_n = ant_art.cod_n AND
|
||||
movi[idx].cod_grupo = ant_art.cod_grupo AND
|
||||
movi[idx].cod_tipo = ant_art.cod_tipo AND
|
||||
movi[idx].cod_sec = ant_art.cod_sec THEN
|
||||
LET p_act = p_act - 1
|
||||
NEXT FIELD cod_grupo
|
||||
END IF
|
||||
END IF
|
||||
END FOR
|
||||
END IF
|
||||
|
||||
AFTER FIELD cod_grupo
|
||||
IF movi[p_act].cod_grupo is null THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_n
|
||||
END IF
|
||||
|
||||
LET p_act = arr_curr()
|
||||
LET ant_art.cod_n = movi[p_act].cod_n
|
||||
LET ant_art.cod_grupo = movi[p_act].cod_grupo
|
||||
LET ant_art.cod_tipo = movi[p_act].cod_tipo
|
||||
LET ant_art.cod_sec = movi[p_act].cod_sec
|
||||
|
||||
FOR idx = 1 TO arr_count()
|
||||
IF idx != p_act THEN
|
||||
IF movi[idx].cod_n = ant_art.cod_n AND
|
||||
movi[idx].cod_grupo = ant_art.cod_grupo AND
|
||||
movi[idx].cod_tipo = ant_art.cod_tipo AND
|
||||
movi[idx].cod_sec = ant_art.cod_sec THEN
|
||||
LET p_act = p_act - 1
|
||||
NEXT FIELD cod_tipo
|
||||
END IF
|
||||
END IF
|
||||
END FOR
|
||||
|
||||
AFTER FIELD cod_tipo
|
||||
IF movi[p_act].cod_tipo is null THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_n
|
||||
END IF
|
||||
|
||||
LET p_act = arr_curr()
|
||||
LET ant_art.cod_n = movi[p_act].cod_n
|
||||
LET ant_art.cod_grupo = movi[p_act].cod_grupo
|
||||
LET ant_art.cod_tipo = movi[p_act].cod_tipo
|
||||
LET ant_art.cod_sec = movi[p_act].cod_sec
|
||||
|
||||
FOR idx = 1 TO arr_count()
|
||||
IF idx != p_act THEN
|
||||
IF movi[idx].cod_n = ant_art.cod_n AND
|
||||
movi[idx].cod_grupo = ant_art.cod_grupo AND
|
||||
movi[idx].cod_tipo = ant_art.cod_tipo AND
|
||||
movi[idx].cod_sec = ant_art.cod_sec THEN
|
||||
LET p_act = p_act - 1
|
||||
NEXT FIELD cod_sec
|
||||
END IF
|
||||
END IF
|
||||
END FOR
|
||||
|
||||
AFTER FIELD cod_sec
|
||||
LET p_act = arr_curr()
|
||||
IF movi[p_act].cod_sec is null THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_n
|
||||
END IF
|
||||
|
||||
IF movi[p_act].cod_n is null AND movi[p_act].cod_sec is not null THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_n
|
||||
END IF
|
||||
|
||||
IF movi[p_act].cod_n is not null and
|
||||
movi[p_act].cod_grupo is not null and
|
||||
movi[p_act].cod_tipo is not null and
|
||||
movi[p_act].cod_sec is not null then
|
||||
|
||||
SELECT descrip_esp,unidad_med INTO descrip1,descrip2
|
||||
FROM intb00001
|
||||
WHERE cod_n = movi[p_act].cod_n and
|
||||
cod_grupo = movi[p_act].cod_grupo and
|
||||
cod_tipo = movi[p_act].cod_tipo and
|
||||
cod_sec = movi[p_act].cod_sec
|
||||
and status_t is null
|
||||
|
||||
IF status >= 0 THEN
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_n
|
||||
END IF
|
||||
else
|
||||
CALL integridad()
|
||||
|
||||
if bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
RETURN
|
||||
end if
|
||||
END IF
|
||||
SELECT * FROM istb00002 WHERE cod_n = movi[p_act].cod_n and
|
||||
cod_grupo = movi[p_Act].cod_grupo and
|
||||
cod_tipo = movi[p_act].cod_tipo and
|
||||
cod_sec = movi[p_act].cod_sec
|
||||
and status_t is null
|
||||
IF status >= 0 THEN
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 35
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_n
|
||||
END IF
|
||||
ELSE
|
||||
CALL integridad()
|
||||
|
||||
if bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
RETURN
|
||||
end if
|
||||
END IF
|
||||
LET movi[p_act].descrip_esp = descrip1
|
||||
LET movi[p_act].unidad_med = descrip2 clipped
|
||||
|
||||
DISPLAY movi[p_act].descrip_esp TO s_movi1[scr_l].descrip_esp
|
||||
DISPLAY movi[p_act].unidad_med TO s_movi1[scr_l].unidad_med
|
||||
|
||||
LET ant_art.cod_n = movi[p_act].cod_n
|
||||
LET ant_art.cod_grupo = movi[p_act].cod_grupo
|
||||
LET ant_art.cod_tipo = movi[p_act].cod_tipo
|
||||
LET ant_art.cod_sec = movi[p_act].cod_sec
|
||||
|
||||
FOR idx = 1 TO arr_count()
|
||||
IF idx != p_act THEN
|
||||
IF movi[idx].cod_n = ant_art.cod_n AND
|
||||
movi[idx].cod_grupo = ant_art.cod_grupo AND
|
||||
movi[idx].cod_tipo = ant_art.cod_tipo AND
|
||||
movi[idx].cod_sec = ant_art.cod_sec THEN
|
||||
LET numero_msg = 21
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_n
|
||||
END IF
|
||||
END IF
|
||||
END FOR
|
||||
END IF
|
||||
|
||||
AFTER FIELD cantidad_1
|
||||
IF movi[p_act].cantidad_1 IS NULL then
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
END IF
|
||||
|
||||
AFTER FIELD cantidad_2
|
||||
IF movi[p_act].cod_n is not null and
|
||||
movi[p_act].cod_grupo is not null and
|
||||
movi[p_act].cod_tipo is not null and
|
||||
movi[p_act].cod_sec is not null THEN
|
||||
|
||||
SELECT pto_reorden,existencia INTO chequea.* FROM istb00002
|
||||
WHERE cod_n = movi[p_act].cod_n and
|
||||
cod_grupo = movi[p_act].cod_grupo and
|
||||
cod_tipo = movi[p_act].cod_tipo and
|
||||
cod_sec = movi[p_act].cod_sec
|
||||
and status_t is null
|
||||
|
||||
#Verifica que la cantidad digitada no exceda a la existencia
|
||||
|
||||
IF movi[p_act].cantidad_2 > chequea.existe THEN
|
||||
LET numero_msg = 30
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_n
|
||||
END IF
|
||||
END IF
|
||||
|
||||
#Verifica el punto de reorden y da mensaje
|
||||
|
||||
LET cant = chequea.existe - movi[p_act].cantidad_2
|
||||
|
||||
IF cant < chequea.pto THEN
|
||||
LET numero_msg = 31
|
||||
CALL msg(numero_msg)
|
||||
END IF
|
||||
|
||||
IF movi[p_act].cantidad_2 > movi[p_act].cantidad_1 THEN
|
||||
LET numero_msg = 28
|
||||
CALL msg(numero_msg)
|
||||
END IF
|
||||
|
||||
IF movi[p_act].cantidad_2 IS NULL then
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_n
|
||||
END IF
|
||||
|
||||
AFTER INPUT
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = false
|
||||
FOR idx = 1 to arr_count()
|
||||
LET movi[idx].cod_n = null
|
||||
LET movi[idx].cod_grupo = null
|
||||
LET movi[idx].cod_tipo = null
|
||||
LET movi[idx].cod_sec = null
|
||||
LET movi[idx].cantidad_1 = null
|
||||
LET movi[idx].cantidad_2 = null
|
||||
LET movi[idx].unidad_med = null
|
||||
LET movi[idx].descrip_esp = null
|
||||
END FOR
|
||||
SLEEP 3
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
IF movi[p_act].cod_n is not null and
|
||||
movi[p_act].cod_grupo is not null and
|
||||
movi[p_act].cod_tipo is not null and
|
||||
movi[p_act].cod_sec is not null then
|
||||
|
||||
SELECT descrip_esp,unidad_med INTO descrip1,descrip2
|
||||
FROM intb00001
|
||||
WHERE cod_n = movi[p_act].cod_n and
|
||||
cod_grupo = movi[p_act].cod_grupo and
|
||||
cod_tipo = movi[p_act].cod_tipo and
|
||||
cod_sec = movi[p_act].cod_sec
|
||||
and status_t is null
|
||||
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_n
|
||||
END IF
|
||||
CALL integridad()
|
||||
|
||||
if bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
RETURN
|
||||
end if
|
||||
SELECT * FROM istb00002 WHERE cod_n = movi[p_act].cod_n and
|
||||
cod_grupo = movi[p_Act].cod_grupo and
|
||||
cod_tipo = movi[p_act].cod_tipo and
|
||||
cod_sec = movi[p_act].cod_sec
|
||||
and status_t is null
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 35
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_n
|
||||
END IF
|
||||
CALL integridad()
|
||||
|
||||
if bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
RETURN
|
||||
end if
|
||||
LET movi[p_act].descrip_esp = descrip1
|
||||
LET movi[p_act].unidad_med = descrip2 clipped
|
||||
|
||||
DISPLAY movi[p_act].descrip_esp TO s_movi1[scr_l].descrip_esp
|
||||
DISPLAY movi[p_act].unidad_med TO s_movi1[scr_l].unidad_med
|
||||
|
||||
|
||||
LET ant_art.cod_n = movi[p_act].cod_n
|
||||
LET ant_art.cod_grupo = movi[p_act].cod_grupo
|
||||
LET ant_art.cod_tipo = movi[p_act].cod_tipo
|
||||
LET ant_art.cod_sec = movi[p_act].cod_sec
|
||||
|
||||
FOR idx = 1 TO arr_count()
|
||||
IF idx != p_act THEN
|
||||
IF movi[idx].cod_n = ant_art.cod_n AND
|
||||
movi[idx].cod_grupo = ant_art.cod_grupo AND
|
||||
movi[idx].cod_tipo = ant_art.cod_tipo AND
|
||||
movi[idx].cod_sec = ant_art.cod_sec THEN
|
||||
LET numero_msg = 21
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_n
|
||||
END IF
|
||||
END IF
|
||||
END FOR
|
||||
IF movi[p_act].cod_n is not null and
|
||||
movi[p_act].cod_grupo is not null and
|
||||
movi[p_act].cod_tipo is not null and
|
||||
movi[p_act].cod_sec is not null THEN
|
||||
|
||||
SELECT pto_reorden,existencia INTO chequea.* FROM istb00002
|
||||
WHERE cod_n = movi[p_act].cod_n and
|
||||
cod_grupo = movi[p_act].cod_grupo and
|
||||
cod_tipo = movi[p_act].cod_tipo and
|
||||
cod_sec = movi[p_act].cod_sec
|
||||
and status_t is null
|
||||
|
||||
#Verifica que la cantidad digitada no exceda a la existencia
|
||||
|
||||
IF movi[p_act].cantidad_2 > chequea.existe THEN
|
||||
LET numero_msg = 30
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_n
|
||||
END IF
|
||||
LET cant = chequea.existe - movi[p_act].cantidad_2
|
||||
|
||||
IF cant < chequea.pto THEN
|
||||
LET numero_msg = 31
|
||||
CALL msg(numero_msg)
|
||||
END IF
|
||||
END IF
|
||||
|
||||
|
||||
IF movi[p_act].cantidad_1 IS NULL and movi[p_act].cantidad_2 IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_n
|
||||
END IF
|
||||
END IF
|
||||
|
||||
IF movi[p_act].cod_n is null THEN
|
||||
CALL limpia()
|
||||
END IF
|
||||
IF movi[p_act].cod_grupo is null THEN
|
||||
CALL limpia()
|
||||
END IF
|
||||
IF movi[p_act].cod_tipo is null THEN
|
||||
CALL limpia()
|
||||
END IF
|
||||
IF movi[p_act].cod_sec is null THEN
|
||||
CALL limpia()
|
||||
END IF
|
||||
EXIT INPUT
|
||||
END INPUT
|
||||
|
||||
PROMPT "Toda la Informacion Esta Correcta? (S/N)" FOR CHAR opc
|
||||
IF OPC = "S" or OPC = "s" THEN
|
||||
FOR idx = 1 TO arr_count()
|
||||
IF movi[idx].cod_n is not null and movi[idx].cod_grupo is not null and
|
||||
movi[idx].cod_tipo is not null and movi[idx].cod_sec is not null THEN
|
||||
LET movi[idx].cantidad_2 = movi[idx].cantidad_2 * -1
|
||||
|
||||
INSERT INTO istb00006 VALUES
|
||||
(datos1.num_doc,datos1.fecha,null,
|
||||
null,null,null,null,null,
|
||||
36,movi[idx].cod_n,
|
||||
movi[idx].cod_grupo,movi[idx].cod_tipo,
|
||||
movi[idx].cod_sec,movi[idx].cantidad_1,
|
||||
movi[idx].cantidad_2,null,datos1.depto_a,
|
||||
null,null,datos1.bodega,null,user,current,
|
||||
null,null)
|
||||
|
||||
CALL integridad()
|
||||
IF bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
RETURN
|
||||
END IF
|
||||
LET movi[idx].cantidad_2 = movi[idx].cantidad_2 * -1
|
||||
EXECUTE actualiza USING movi[idx].cantidad_2,
|
||||
movi[idx].cod_n,movi[idx].cod_grupo,
|
||||
movi[idx].cod_tipo,movi[idx].cod_sec
|
||||
CALL integridad()
|
||||
|
||||
if bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
RETURN
|
||||
end if
|
||||
END IF
|
||||
END FOR
|
||||
LET numero_msg = 1
|
||||
CALL msg(numero_msg)
|
||||
CLEAR FORM
|
||||
FOR idx = 1 to 6
|
||||
LET movi[idx].cod_n = null
|
||||
LET movi[idx].cod_grupo = null
|
||||
LET movi[idx].cod_tipo = null
|
||||
LET movi[idx].cod_sec = null
|
||||
LET movi[idx].cantidad_1 = null
|
||||
LET movi[idx].cantidad_2 = null
|
||||
LET movi[idx].unidad_med = null
|
||||
LET movi[idx].descrip_esp = null
|
||||
DISPLAY movi[idx].cod_n to s_movi1[idx].cod_n
|
||||
DISPLAY movi[idx].cod_grupo to s_movi1[idx].cod_grupo
|
||||
DISPLAY movi[idx].cod_tipo to s_movi1[idx].cod_tipo
|
||||
DISPLAY movi[idx].cod_sec to s_movi1[idx].cod_sec
|
||||
DISPLAY movi[idx].descrip_esp to s_movi1[idx].descrip_esp
|
||||
DISPLAY movi[idx].unidad_med to s_movi1[idx].unidad_med
|
||||
END FOR
|
||||
ELSE
|
||||
GOTO otra_vez
|
||||
END IF
|
||||
GOTO vuelve
|
||||
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION limpia()
|
||||
|
||||
LET movi[p_act].cod_n = null
|
||||
LET movi[p_act].cod_grupo = null
|
||||
LET movi[p_act].cod_tipo = null
|
||||
LET movi[p_act].cod_sec = null
|
||||
LET movi[p_act].cantidad_1 = null
|
||||
LET movi[p_act].cantidad_2 = null
|
||||
LET movi[p_act].unidad_med = null
|
||||
LET movi[p_act].descrip_esp = null
|
||||
DISPLAY movi[p_act].cod_n to s_movi1[scr_l].cod_n
|
||||
DISPLAY movi[p_act].cod_grupo to s_movi1[scr_l].cod_grupo
|
||||
DISPLAY movi[p_act].cod_tipo to s_movi1[scr_l].cod_tipo
|
||||
DISPLAY movi[p_act].cod_sec to s_movi1[scr_l].cod_sec
|
||||
DISPLAY movi[p_act].cantidad_1 to s_movi1[scr_l].cantidad_1
|
||||
DISPLAY movi[p_act].cantidad_2 to s_movi1[scr_l].cantidad_2
|
||||
DISPLAY movi[p_act].unidad_med to s_movi1[scr_l].unidad_med
|
||||
DISPLAY movi[p_act].descrip_esp to s_movi1[scr_l].descrip_esp
|
||||
END FUNCTION
|
||||
@@ -0,0 +1,856 @@
|
||||
{
|
||||
------------------------------------------------------------------
|
||||
PROGRAMA : ISPRMT056
|
||||
OBJETIVO : Modificar, Eliminar registros de los
|
||||
Movimientos de Suministro
|
||||
PROGRAMADOR : Ing. Juan Soto(Johnny)
|
||||
FECHA REALIZACION : Octubre 21, 1993.
|
||||
------------------------------------------------------------------
|
||||
}
|
||||
GLOBALS "isprgb000.4gl"
|
||||
|
||||
FUNCTION isprmt056()
|
||||
|
||||
#WHENEVER ERROR CONTINUE
|
||||
CLEAR SCREEN
|
||||
OPTIONS
|
||||
FORM LINE 4,
|
||||
ERROR LINE 23,
|
||||
COMMENT LINE 21
|
||||
|
||||
OPEN FORM isfmmt056 FROM "isfmmt056"
|
||||
DISPLAY FORM isfmmt056
|
||||
DISPLAY "isprmt056" AT 3,3 ATTRIBUTE (RED)
|
||||
DISPLAY "Correccion Movimientos De Suministros" AT 3,21 ATTRIBUTE (BLACK)
|
||||
|
||||
MENU "OPCIONES"
|
||||
COMMAND "Consultar-modificar"
|
||||
"<Esc> Realiza Busqueda <Supr> Cancela Operacion"
|
||||
LET INT_FLAG = FALSE
|
||||
CALL ispcmf056()
|
||||
COMMAND "Salir" "Retorna Menu Anterior"
|
||||
EXIT MENU
|
||||
END MENU
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION ispcmf056()
|
||||
DEFINE porciento,total_cantidad_ant,total_cantidad,ordenada,recibida,
|
||||
cantidad1,cant_e,devuelto,r_cantidad1,devuelto1,r_cantidad,
|
||||
cantidad_1_ant DECIMAL(12,2)
|
||||
DEFINE codigo_ant ARRAY[100] OF CHAR(7)
|
||||
DEFINE devuelta,cerrada,actualiza CHAR(1)
|
||||
|
||||
#WHENEVER ERROR CONTINUE
|
||||
LET int_flag = false
|
||||
LET existe = null
|
||||
## Aqui se prepara para la captura del criterio de seleccion
|
||||
CLEAR FORM
|
||||
CONSTRUCT criterio ON a.cod_mov,a.num_doc FROM cod_mov,num_doc
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
CLEAR FORM
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
LET SELEC = " SELECT UNIQUE a.cod_mov,a.num_doc,a.fecha,a.conduce_no, ",
|
||||
"a.fact_no,a.tipo,a.orden_compra,a.cod_sp,a.cod_sp_sec, ",
|
||||
"a.depto_a,a.bodega ",
|
||||
" FROM istb00006 a,istb00005 b ",
|
||||
"WHERE ",
|
||||
criterio clipped,
|
||||
"and a.cod_mov = b.cod_mov ",
|
||||
" and a.status_t is null and ",
|
||||
" a.cod_mov != 99 ",
|
||||
" ORDER BY 1,2 "
|
||||
|
||||
PREPARE busca FROM selec
|
||||
CALL integridad()
|
||||
|
||||
IF bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
RETURN
|
||||
END IF
|
||||
DECLARE datos SCROLL CURSOR FOR busca
|
||||
OPEN datos
|
||||
FETCH FIRST datos INTO movimientos.*
|
||||
IF status >= 0 THEN
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
RETURN
|
||||
END IF
|
||||
ELSE
|
||||
|
||||
CALL integridad()
|
||||
|
||||
IF bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
RETURN
|
||||
END IF
|
||||
END IF
|
||||
|
||||
SELECT status_mov,descrip_mov INTO transacc.status_mov,datos_gen.descrip_mov
|
||||
FROM istb00005
|
||||
WHERE cod_mov = movimientos.cod_mov
|
||||
|
||||
CALL buscame()
|
||||
DISPLAY BY NAME datos_gen.descrip_mov
|
||||
DISPLAY BY NAME datos_gen.nom_sp
|
||||
DISPLAY BY NAME movimientos.*
|
||||
|
||||
MENU "OPCIONES "
|
||||
COMMAND "Siguiente"
|
||||
"Presenta en pantalla el proximo registro encontrado"
|
||||
FETCH NEXT datos INTO movimientos.*
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 4
|
||||
CALL msg(numero_msg)
|
||||
END IF
|
||||
SELECT descrip_mov INTO datos_gen.descrip_mov FROM istb00005
|
||||
WHERE cod_mov = movimientos.cod_mov
|
||||
CALL buscame()
|
||||
DISPLAY BY NAME datos_gen.nom_sp,datos_gen.descrip_mov
|
||||
DISPLAY BY NAME movimientos.*
|
||||
|
||||
COMMAND "Anterior"
|
||||
"Presenta en pantalla el registro anterior encontrado"
|
||||
FETCH PREVIOUS datos INTO movimientos.*
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 5
|
||||
CALL msg(numero_msg)
|
||||
END IF
|
||||
SELECT descrip_mov INTO datos_gen.descrip_mov FROM istb00005
|
||||
WHERE cod_mov = movimientos.cod_mov
|
||||
CALL buscame()
|
||||
DISPLAY BY NAME datos_gen.nom_sp,datos_gen.descrip_mov
|
||||
DISPLAY BY NAME movimientos.*
|
||||
|
||||
COMMAND "Primero"
|
||||
"Presenta en pantalla el primer registro encontrado"
|
||||
FETCH FIRST datos INTO movimientos.*
|
||||
CALL buscame()
|
||||
SELECT descrip_mov INTO datos_gen.descrip_mov FROM istb00005
|
||||
WHERE cod_mov = movimientos.cod_mov
|
||||
DISPLAY BY NAME datos_gen.nom_sp,datos_gen.descrip_mov
|
||||
DISPLAY BY NAME movimientos.*
|
||||
LET numero_msg = 5
|
||||
CALL msg(numero_msg)
|
||||
|
||||
COMMAND "Ultimo"
|
||||
"Presenta en pantalla el ultimo registro encontrado"
|
||||
FETCH LAST datos INTO movimientos.*
|
||||
CALL buscame()
|
||||
SELECT descrip_mov INTO datos_gen.descrip_mov FROM istb00005
|
||||
WHERE cod_mov = movimientos.cod_mov
|
||||
DISPLAY BY NAME datos_gen.nom_sp,datos_gen.descrip_mov
|
||||
DISPLAY BY NAME movimientos.*
|
||||
LET numero_msg = 4
|
||||
CALL msg(numero_msg)
|
||||
|
||||
COMMAND "Escoger"
|
||||
"<Esc> Actualiza Registro <Supr> Cancela Operacion"
|
||||
|
||||
LET cerrada = "N"
|
||||
LET total_cantidad = 0
|
||||
LET total_cantidad_ant = 0
|
||||
|
||||
INPUT BY NAME movimientos.* WITHOUT DEFAULTS
|
||||
|
||||
BEFORE FIELD cod_mov
|
||||
LET cod_mov_ant = movimientos.cod_mov
|
||||
|
||||
AFTER FIELD cod_mov
|
||||
IF movimientos.cod_mov is null THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_mov
|
||||
END IF
|
||||
SELECT descrip_mov INTO otros_mov.descrip_mov FROM
|
||||
istb00005 where cod_mov = movimientos.cod_mov
|
||||
IF status = notfound THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_mov
|
||||
END IF
|
||||
DISPLAY BY NAME otros_mov.descrip_mov
|
||||
NEXT FIELD fecha
|
||||
|
||||
AFTER FIELD bodega
|
||||
IF movimientos.bodega is null THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD bodega
|
||||
ELSE
|
||||
SELECT * FROM istb00009 WHERE cod_bodega = movimientos.bodega
|
||||
IF status = notfound THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD bodega
|
||||
END IF
|
||||
END IF
|
||||
|
||||
AFTER FIELD fecha
|
||||
|
||||
LET p_fechas = movimientos.fecha using "ddmmyy"
|
||||
CALL prd(p_fechas)
|
||||
IF bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
NEXT FIELD fecha
|
||||
END IF
|
||||
|
||||
AFTER FIELD depto_de
|
||||
IF movimientos.depto_de is not null THEN
|
||||
SELECT nom_dpto INTO datos.nom_dpto FROM adtb00001
|
||||
WHERE departamento = movimientos.depto_de and
|
||||
status_t is null
|
||||
|
||||
IF status = notfound THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD depto_de
|
||||
END IF
|
||||
END IF
|
||||
DISPLAY BY NAME datos.nom_dpto
|
||||
|
||||
AFTER INPUT
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
CLEAR FORM
|
||||
RETURN
|
||||
END IF
|
||||
EXIT INPUT
|
||||
END INPUT
|
||||
|
||||
DECLARE buscate CURSOR FOR
|
||||
SELECT b.cod_n,b.cod_grupo,b.cod_tipo,b.cod_sec,c.cantidad_1,c.cantidad_2,
|
||||
b.unidad_med,b.descrip_esp
|
||||
FROM istb00006 c,intb00001 b
|
||||
WHERE c.num_doc = movimientos.num_doc and
|
||||
c.cod_mov = cod_mov_ant and
|
||||
c.cod_n = b.cod_n and
|
||||
c.cod_grupo = b.cod_grupo and
|
||||
c.cod_tipo = b.cod_tipo and
|
||||
c.cod_sec = b.cod_sec AND
|
||||
c.status_t is null
|
||||
LET idx = 1
|
||||
FOREACH buscate INTO movi[idx].*
|
||||
|
||||
IF movi[idx].cantidad_2 < 0 THEN
|
||||
LET movi[idx].cantidad_2 = movi[idx].cantidad_2 * -1
|
||||
END IF
|
||||
|
||||
LET idx = idx + 1
|
||||
END FOREACH
|
||||
CALL set_count(idx -1)
|
||||
|
||||
INPUT ARRAY movi WITHOUT DEFAULTS FROM s_movi1.*
|
||||
ON KEY(CONTROL-B)
|
||||
LET p_act = arr_curr()
|
||||
LET scr_l = scr_line()
|
||||
SELECT existencia INTO chequea.existe FROM istb00002
|
||||
WHERE
|
||||
cod_n = movi[p_act].cod_n and
|
||||
cod_grupo = movi[p_act].cod_grupo and
|
||||
cod_tipo = movi[p_act].cod_tipo and
|
||||
cod_sec = movi[p_act].cod_sec
|
||||
IF transacc.status_mov = "1" THEN
|
||||
IF movi[p_act].cantidad_2 > chequea.existe THEN
|
||||
LET numero_msg = 6
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_n
|
||||
END IF
|
||||
END IF
|
||||
UPDATE istb00006 set us_mod = user,
|
||||
fech_mod = current,
|
||||
status_t = "E"
|
||||
WHERE
|
||||
cod_n = movi[p_act].cod_n and
|
||||
cod_grupo = movi[p_act].cod_grupo and
|
||||
cod_tipo = movi[p_act].cod_tipo and
|
||||
cod_sec = movi[p_act].cod_sec and
|
||||
num_doc = movimientos.num_doc and
|
||||
cod_mov = movimientos.cod_mov
|
||||
|
||||
SELECT sum(cantidad_2) INTO chequea.existe FROM istb00006
|
||||
WHERE
|
||||
cod_n = movi[p_act].cod_n and
|
||||
cod_grupo = movi[p_act].cod_grupo and
|
||||
cod_tipo = movi[p_act].cod_tipo and
|
||||
cod_sec = movi[p_act].cod_sec and
|
||||
status_t is null
|
||||
|
||||
UPDATE istb00002 set existencia = chequea.existe
|
||||
WHERE
|
||||
cod_n = movi[p_act].cod_n and
|
||||
cod_grupo = movi[p_act].cod_grupo and
|
||||
cod_tipo = movi[p_act].cod_tipo and
|
||||
cod_sec = movi[p_act].cod_sec
|
||||
|
||||
CALL limpia()
|
||||
LET numero_msg = 39
|
||||
CALL msg(numero_msg)
|
||||
|
||||
NEXT FIELD cod_n
|
||||
|
||||
BEFORE FIELD cantidad_2
|
||||
IF movimientos.cod_mov != 38 THEN
|
||||
IF numero_msg != 30 THEN
|
||||
LET movi_ant[p_act].cant_ant = movi[p_act].cantidad_2
|
||||
END IF
|
||||
END IF
|
||||
|
||||
BEFORE ROW
|
||||
LET p_Act = arr_curr()
|
||||
LET codigo_ant[p_act] = movi[p_act].cod_n using "&",
|
||||
movi[p_act].cod_grupo using "&",
|
||||
movi[p_act].cod_tipo using "&&",
|
||||
movi[p_act].cod_sec using "&&&"
|
||||
|
||||
LET movi_ant[p_act].cant_ant = movi[p_Act].cantidad_2
|
||||
|
||||
# Chequeo si es un reporte de entrada para mandar la secuencia del porgrama a
|
||||
# La Cantidad Recibida
|
||||
|
||||
IF movimientos.cod_mov = 34 or movimientos.cod_mov = 35 THEN
|
||||
NEXT FIELD cantidad_2
|
||||
END IF
|
||||
|
||||
# Chequeo si es una devolucion para mandar la secuencia del porgrama a
|
||||
# La Cantidad devuelta
|
||||
|
||||
IF movimientos.cod_mov = 38 THEN
|
||||
NEXT FIELD cantidad_2
|
||||
END IF
|
||||
|
||||
AFTER FIELD cod_n
|
||||
LET scr_l = scr_line()
|
||||
LET p_Act = arr_curr()
|
||||
LET ya = "N"
|
||||
CALL repetir()
|
||||
IF existe = "S" THEN
|
||||
NEXT FIELD cod_grupo
|
||||
LET existe = "N"
|
||||
END IF
|
||||
|
||||
AFTER FIELD cod_grupo
|
||||
IF movi[p_act].cod_grupo is null THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_n
|
||||
END IF
|
||||
|
||||
LET ya = "N"
|
||||
CALL repetir()
|
||||
IF existe = "S" THEN
|
||||
NEXT FIELD cod_tipo
|
||||
LET existe = "N"
|
||||
END IF
|
||||
|
||||
AFTER FIELD cod_tipo
|
||||
IF movi[p_act].cod_tipo is null THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_n
|
||||
END IF
|
||||
|
||||
LET ya = "N"
|
||||
CALL repetir()
|
||||
IF existe = "S" THEN
|
||||
NEXT FIELD cod_sec
|
||||
LET existe = "N"
|
||||
END IF
|
||||
|
||||
AFTER FIELD cod_sec
|
||||
|
||||
IF movi[p_act].cod_sec is null THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_n
|
||||
END IF
|
||||
|
||||
IF movi[p_act].cod_n is null AND movi[p_act].cod_grupo is null AND
|
||||
movi[p_act].cod_tipo is null AND movi[p_act].cod_sec is null THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_n
|
||||
ELSE
|
||||
LET ya = "N"
|
||||
CALL repetir()
|
||||
IF existe = "S" THEN
|
||||
LET existe = "N"
|
||||
NEXT FIELD cod_n
|
||||
END IF
|
||||
SELECT a.descrip_esp ,a.unidad_med
|
||||
INTO articulos.descrip_esp ,articulos.unidad_med
|
||||
FROM intb00001 a
|
||||
WHERE a.cod_n = movi[p_act].cod_n and
|
||||
a.cod_grupo = movi[p_act].cod_grupo and
|
||||
a.cod_tipo = movi[p_act].cod_tipo and
|
||||
a.cod_sec = movi[p_act].cod_sec and
|
||||
a.status_t is null
|
||||
|
||||
IF status >= 0 THEN
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_n
|
||||
ELSE
|
||||
SELECT status_t INTO articulos.status_t FROM istb00006
|
||||
WHERE
|
||||
cod_n = movi[p_act].cod_n AND
|
||||
cod_grupo = movi[p_act].cod_grupo AND
|
||||
cod_tipo = movi[p_act].cod_tipo AND
|
||||
cod_sec = movi[p_act].cod_sec and
|
||||
num_doc = movimientos.num_doc and
|
||||
cod_mov = movimientos.cod_mov and
|
||||
status_t = "E"
|
||||
IF status != notfound THEN
|
||||
LET numero_msg = 36
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_n
|
||||
END IF
|
||||
END IF
|
||||
ELSE
|
||||
CALL integridad()
|
||||
IF bandera = 1 THEN
|
||||
CLEAR FORM
|
||||
RETURN
|
||||
END IF
|
||||
END IF
|
||||
LET movi[p_act].descrip_esp = articulos.descrip_esp
|
||||
LET movi[p_act].unidad_med = articulos.unidad_med
|
||||
DISPLAY movi[p_act].descrip_esp TO s_movi1[scr_l].descrip_esp
|
||||
ATTRIBUTE (BOLD)
|
||||
DISPLAY movi[p_act].unidad_med TO s_movi1[scr_l].unidad_med
|
||||
ATTRIBUTE (BOLD)
|
||||
END IF
|
||||
|
||||
BEFORE FIELD cantidad_1
|
||||
|
||||
IF movimientos.cod_mov = 38 THEN
|
||||
NEXT FIELD cantidad_2
|
||||
END IF
|
||||
|
||||
AFTER FIELD cantidad_2
|
||||
|
||||
IF movi[p_act].cantidad_2 < 0 THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cantidad_2
|
||||
END IF
|
||||
|
||||
# Chequea la existencia cuando el movimiento es de salida para
|
||||
# que por medio a la modificacion no ponga la existencia en negativa
|
||||
|
||||
IF transacc.status_mov = "2" THEN
|
||||
SELECT existencia,pto_reorden INTO chequea.existe,chequea.pto
|
||||
FROM istb00002
|
||||
WHERE cod_n = movi[p_act].cod_n AND
|
||||
cod_grupo = movi[p_act].cod_grupo AND
|
||||
cod_tipo = movi[p_act].cod_tipo AND
|
||||
cod_sec = movi[p_act].cod_sec
|
||||
|
||||
LET cantidad1 = (chequea.existe + movi_ant[p_act].cant_ant)
|
||||
|
||||
IF movi[p_act].cantidad_2 > cantidad1 THEN
|
||||
LET numero_msg = 30
|
||||
CALL msg(numero_msg)
|
||||
LET numero_msg = 30
|
||||
NEXT FIELD cantidad_2
|
||||
END IF
|
||||
|
||||
IF cantidad1 <= chequea.pto THEN
|
||||
LET numero_msg = 31
|
||||
CALL msg(numero_msg)
|
||||
END IF
|
||||
END IF
|
||||
|
||||
# Verifica que la cantidad recibida mas las que se han recibida de
|
||||
# la orden no exceda de un 10% de la cantidad total de la orden
|
||||
|
||||
IF movi[p_act].cantidad_2 IS NOT NULL THEN
|
||||
|
||||
IF transacc.status_mov = "1" THEN
|
||||
SELECT sum(cantidad_2) INTO recibida FROM istb00006
|
||||
WHERE orden_compra = movimientos.orden_compra and
|
||||
tipo = movimientos.tipo and
|
||||
cod_n = movi[p_act].cod_n and
|
||||
cod_grupo = movi[p_act].cod_grupo and
|
||||
cod_tipo = movi[p_act].cod_tipo and
|
||||
cod_sec = movi[p_act].cod_sec
|
||||
|
||||
SELECT cantidad INTO ordenada FROM cotb00015
|
||||
WHERE num_oc = movimientos.orden_compra and
|
||||
tipo = movimientos.tipo and
|
||||
cod_n = movi[p_act].cod_n and
|
||||
cod_grupo = movi[p_act].cod_grupo and
|
||||
cod_tipo = movi[p_act].cod_tipo and
|
||||
cod_sec = movi[p_act].cod_sec
|
||||
|
||||
IF recibida is null THEN
|
||||
LET recibida = 0
|
||||
END IF
|
||||
|
||||
IF ordenada is null THEN
|
||||
LET ordenada = 0
|
||||
END IF
|
||||
|
||||
LET porciento = ordenada * 0.10
|
||||
LET recibida = recibida - movi_ant[p_act].cant_ant
|
||||
+ movi[p_act].cantidad_2
|
||||
LET r_cantidad = ordenada + porciento
|
||||
|
||||
|
||||
IF recibida > r_cantidad THEN
|
||||
LET numero_msg = 28
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cantidad_2
|
||||
END IF
|
||||
END IF
|
||||
END IF
|
||||
|
||||
IF movi[p_act].cantidad_2 < 0 THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cantidad_2
|
||||
END IF
|
||||
|
||||
IF movimientos.cod_mov = 38 THEN
|
||||
IF movi[p_act].cantidad_2 is not null THEN
|
||||
|
||||
SELECT pto_reorden,existencia INTO chequea.* FROM istb00002
|
||||
WHERE
|
||||
cod_n = movi[p_act].cod_n and
|
||||
cod_grupo = movi[p_act].cod_grupo and
|
||||
cod_tipo = movi[p_act].cod_tipo and
|
||||
cod_sec = movi[p_act].cod_sec and
|
||||
status_t is null
|
||||
|
||||
CALL integridad()
|
||||
|
||||
if bandera = 1 THEN
|
||||
CLEAR SCREEN
|
||||
RETURN
|
||||
end if
|
||||
|
||||
IF movi[p_act].cantidad_2 > chequea.existe THEN
|
||||
LET numero_msg = 30
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_n
|
||||
END IF
|
||||
|
||||
LET cantidad1 = chequea.existe - movi[p_act].cantidad_2
|
||||
|
||||
IF cantidad1 <= chequea.pto THEN
|
||||
LET numero_msg = 31
|
||||
CALL msg(numero_msg)
|
||||
LET cant = 0
|
||||
END IF
|
||||
|
||||
|
||||
# Verifica que la cantidad recibida mas las que se han recibida de
|
||||
# la orden no exceda de un 10% de la cantidad total de la orden
|
||||
|
||||
SELECT sum(cantidad_2) INTO devuelto FROM istb00006
|
||||
WHERE orden_compra = movimientos.orden_compra and
|
||||
tipo = movimientos.tipo and
|
||||
cod_n = movi[p_act].cod_n and
|
||||
cod_grupo = movi[p_act].cod_grupo and
|
||||
cod_tipo = movi[p_act].cod_tipo and
|
||||
cod_sec = movi[p_act].cod_sec
|
||||
|
||||
IF devuelto is null THEN
|
||||
LET numero_msg = 73
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cantidad_2
|
||||
END IF
|
||||
|
||||
LET devuelto = devuelto + movi_ant[p_act].cant_ant
|
||||
|
||||
IF movi[p_act].cantidad_2 > devuelto THEN
|
||||
LET numero_msg = 33
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cantidad_2
|
||||
END IF
|
||||
END IF
|
||||
|
||||
IF transacc.status_mov != "1" THEN
|
||||
IF movi[p_act].cantidad_2 > cantidad1 THEN
|
||||
LET numero_msg = 30
|
||||
CALL msg(numero_msg)
|
||||
LET numero_msg = 30
|
||||
NEXT FIELD cantidad_2
|
||||
END IF
|
||||
END IF
|
||||
|
||||
IF cantidad1 <= chequea.pto THEN
|
||||
LET numero_msg = 31
|
||||
CALL msg(numero_msg)
|
||||
END IF
|
||||
END IF
|
||||
|
||||
BEFORE FIELD cantidad_1
|
||||
IF movimientos.cod_mov != 34 AND movimientos.cod_mov != 35 AND
|
||||
movimientos.cod_mov != 38 AND movimientos.cod_mov != 36 AND
|
||||
movimientos.cod_mov != 48 THEN
|
||||
NEXT FIELD cantidad_2
|
||||
END IF
|
||||
|
||||
AFTER INPUT
|
||||
#### Verifica si el usuario presiono la tecla <Supr>
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
CLEAR FORM
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
{IF movi[p_act].cod_n is null THEN
|
||||
CALL limpia()
|
||||
END IF
|
||||
|
||||
IF movi[p_act].cod_grupo is null THEN
|
||||
CALL limpia()
|
||||
END IF
|
||||
|
||||
IF movi[p_act].cod_tipo is null THEN
|
||||
CALL limpia()
|
||||
END IF
|
||||
|
||||
IF movi[p_act].cod_sec is null THEN
|
||||
CALL limpia()
|
||||
END IF}
|
||||
|
||||
IF movi3[p_act].codigo = codigo_ant[p_act] THEN
|
||||
FOR idx = 1 to arr_count()
|
||||
|
||||
# Suma La cantidad total del arreglo para este documento para saber si
|
||||
# la orden se cierra con esta cantidad o no
|
||||
|
||||
IF movi[idx].cantidad_2 is not null THEN
|
||||
LET total_cantidad = total_cantidad + movi[idx].cantidad_2
|
||||
LET total_cantidad_ant = total_cantidad_ant + movi_ant[idx].cant_ant
|
||||
END IF
|
||||
|
||||
LET movi_ant[idx].cod_n = movi[idx].cod_n
|
||||
LET movi_ant[idx].cod_grupo = movi[idx].cod_grupo
|
||||
LET movi_ant[idx].cod_tipo = movi[idx].cod_tipo
|
||||
LET movi_ant[idx].cod_sec = movi[idx].cod_sec
|
||||
END FOR
|
||||
END IF
|
||||
|
||||
EXIT INPUT
|
||||
END INPUT
|
||||
|
||||
# Actualizacion de la orden de compra cuando se devuelve mateial
|
||||
|
||||
IF movimientos.cod_mov = 38 THEN
|
||||
|
||||
UPDATE cotb00014 set cierre = "N"
|
||||
WHERE num_oc = movimientos.orden_compra
|
||||
and tipo = movimientos.tipo
|
||||
END IF
|
||||
|
||||
IF movimientos.cod_mov = 34 or movimientos.cod_mov = 35 THEN
|
||||
|
||||
SELECT sum(cantidad_2) INTO recibida FROM istb00006
|
||||
WHERE orden_compra = movimientos.orden_compra
|
||||
and tipo = movimientos.tipo
|
||||
|
||||
SELECT sum(cantidad) INTO ordenada FROM cotb00015
|
||||
WHERE num_oc = movimientos.orden_compra
|
||||
and tipo = movimientos.tipo
|
||||
|
||||
IF recibida is null THEN
|
||||
LET recibida = 0
|
||||
END IF
|
||||
|
||||
IF ordenada is null THEN
|
||||
LET ordenada = 0
|
||||
END IF
|
||||
|
||||
LET porciento = ordenada * 0.10
|
||||
LET recibida = recibida - total_cantidad_ant + total_cantidad
|
||||
LET r_cantidad = ordenada - porciento
|
||||
LET r_cantidad1 = ordenada + porciento
|
||||
|
||||
IF recibida >= r_cantidad and recibida <= r_cantidad1 THEN
|
||||
LET cerrada = "S"
|
||||
END IF
|
||||
|
||||
IF cerrada = "S" THEN
|
||||
UPDATE cotb00014 set cierre = cerrada
|
||||
WHERE num_oc = movimientos.orden_compra
|
||||
and tipo = movimientos.tipo
|
||||
END IF
|
||||
END IF
|
||||
|
||||
FOR idx = 1 TO arr_count()
|
||||
LET movi3[idx].codigo = movi[idx].cod_n using "&",
|
||||
movi[idx].cod_grupo using "&",
|
||||
movi[idx].cod_tipo using "&&",
|
||||
movi[idx].cod_sec using "&&&" CLIPPED
|
||||
|
||||
LET actualiza = "S"
|
||||
IF movi[idx].cod_n is not null or movi[idx].cod_grupo is not null or
|
||||
movi[idx].cod_tipo is not null or movi[idx].cod_sec is not null THEN
|
||||
|
||||
IF transacc.status_mov = "2" THEN
|
||||
LET movi[idx].cantidad_2 = movi[idx].cantidad_2 * -1
|
||||
END IF
|
||||
|
||||
SELECT * FROM istb00006
|
||||
WHERE cod_n = movi[idx].cod_n and
|
||||
cod_grupo = movi[idx].cod_grupo and
|
||||
cod_tipo = movi[idx].cod_tipo and
|
||||
cod_sec = movi[idx].cod_sec and
|
||||
num_doc = movimientos.num_doc and
|
||||
cod_mov = cod_mov_ant and
|
||||
status_t is null
|
||||
|
||||
IF STATUS = NOTFOUND THEN
|
||||
INSERT INTO istb00006
|
||||
(cod_mov,num_doc,fecha,conduce_no,fact_no,
|
||||
tipo,orden_compra,cod_sp,cod_sp_sec,depto_de,
|
||||
bodega,cod_n,cod_grupo,cod_tipo,cod_sec,
|
||||
cantidad_1,cantidad_2,us_mod,fech_mod)
|
||||
VALUES (movimientos.*,movi[idx].cod_n,movi[idx].cod_grupo,
|
||||
movi[idx].cod_tipo,movi[idx].cod_sec,movi[idx].cantidad_1,
|
||||
movi[idx].cantidad_2,user,current)
|
||||
CALL integridad()
|
||||
|
||||
IF bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
RETURN
|
||||
END IF
|
||||
LET actualiza = "N"
|
||||
END IF
|
||||
UPDATE istb00006 SET cod_mov = movimientos.cod_mov,
|
||||
fecha = movimientos.fecha,
|
||||
conduce_no = movimientos.conduce_no,
|
||||
fact_no = movimientos.fact_no,
|
||||
tipo = movimientos.tipo,
|
||||
orden_compra = movimientos.orden_compra,
|
||||
depto_de = movimientos.depto_de,
|
||||
cantidad_1 = movi[idx].cantidad_1,
|
||||
cantidad_2 = movi[idx].cantidad_2,
|
||||
us_mod = USER,
|
||||
fech_mod = CURRENT
|
||||
WHERE cod_n = movi[idx].cod_n AND
|
||||
cod_grupo = movi[idx].cod_grupo AND
|
||||
cod_tipo = movi[idx].cod_tipo AND
|
||||
cod_sec = movi[idx].cod_sec and
|
||||
num_doc = movimientos.num_doc and
|
||||
cod_mov = cod_mov_ant and
|
||||
bodega = movimientos.bodega
|
||||
|
||||
IF movi[idx].cantidad_2 < 0 THEN
|
||||
LET movi[idx].cantidad_2 = movi[idx].cantidad_2 * -1
|
||||
END IF
|
||||
|
||||
IF movi3[idx].codigo = codigo_ant[idx] THEN
|
||||
|
||||
IF transacc.status_mov = "1" THEN
|
||||
UPDATE istb00002 SET existencia = (existencia - movi_ant[idx].cant_ant) +
|
||||
movi[idx].cantidad_2
|
||||
WHERE cod_n = movi[idx].cod_n AND
|
||||
cod_grupo = movi[idx].cod_grupo AND
|
||||
cod_tipo = movi[idx].cod_tipo AND
|
||||
cod_sec = movi[idx].cod_sec and
|
||||
bodega = movimientos.bodega
|
||||
ELSE
|
||||
UPDATE istb00002 SET existencia = (existencia + movi_ant[idx].cant_ant) -
|
||||
movi[idx].cantidad_2
|
||||
WHERE cod_n = movi[idx].cod_n AND
|
||||
cod_grupo = movi[idx].cod_grupo AND
|
||||
cod_tipo = movi[idx].cod_tipo AND
|
||||
cod_sec = movi[idx].cod_sec and
|
||||
bodega = movimientos.bodega
|
||||
END IF
|
||||
END IF
|
||||
|
||||
IF movi3[idx].codigo != codigo_ant[idx] THEN
|
||||
IF transacc.status_mov = "1" THEN
|
||||
UPDATE istb00002 SET existencia = existencia - movi_ant[idx].cant_ant
|
||||
WHERE cod_n = movi_ant[idx].cod_n AND
|
||||
cod_grupo = movi_ant[idx].cod_grupo AND
|
||||
cod_tipo = movi_ant[idx].cod_tipo AND
|
||||
cod_sec = movi_ant[idx].cod_sec and
|
||||
bodega = movimientos.bodega
|
||||
|
||||
UPDATE istb00002 SET existencia = existencia + movi[idx].cantidad_2
|
||||
WHERE cod_n = movi[idx].cod_n AND
|
||||
cod_grupo = movi[idx].cod_grupo AND
|
||||
cod_tipo = movi[idx].cod_tipo AND
|
||||
cod_sec = movi[idx].cod_sec and
|
||||
bodega = movimientos.bodega
|
||||
ELSE
|
||||
UPDATE istb00002 SET existencia = existencia + movi_ant[idx].cant_ant
|
||||
WHERE cod_n = movi_ant[idx].cod_n AND
|
||||
cod_grupo = movi_ant[idx].cod_grupo AND
|
||||
cod_tipo = movi_ant[idx].cod_tipo AND
|
||||
cod_sec = movi_ant[idx].cod_sec and
|
||||
bodega = movimientos.bodega
|
||||
|
||||
UPDATE istb00002 SET existencia = existencia - movi[idx].cantidad_2
|
||||
WHERE cod_n = movi[idx].cod_n AND
|
||||
cod_grupo = movi[idx].cod_grupo AND
|
||||
cod_tipo = movi[idx].cod_tipo AND
|
||||
cod_sec = movi[idx].cod_sec and
|
||||
bodega = movimientos.bodega
|
||||
END IF
|
||||
END IF
|
||||
END IF
|
||||
END FOR
|
||||
|
||||
LET numero_msg = 13
|
||||
CALL msg(numero_msg)
|
||||
|
||||
COMMAND "Retornar"
|
||||
"Retorna al menu anterior"
|
||||
EXIT MENU
|
||||
END MENU
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION buscame()
|
||||
IF movimientos.cod_sp is not null THEN
|
||||
SELECT nom_sp INTO datos_gen.nom_sp FROM cotb00001
|
||||
WHERE cod_sp = movimientos.cod_sp and
|
||||
cod_sp_sec = movimientos.cod_sp_sec
|
||||
END IF
|
||||
END FUNCTION
|
||||
|
||||
|
||||
FUNCTION repetir()
|
||||
|
||||
LET ant_art.cod_n = movi[p_act].cod_n
|
||||
LET ant_art.cod_grupo = movi[p_act].cod_grupo
|
||||
LET ant_art.cod_tipo = movi[p_act].cod_tipo
|
||||
LET ant_art.cod_sec = movi[p_act].cod_sec
|
||||
|
||||
FOR idx = 1 TO arr_count()
|
||||
IF idx != p_act THEN
|
||||
IF movi[idx].cod_n = ant_art.cod_n AND
|
||||
movi[idx].cod_grupo = ant_art.cod_grupo AND
|
||||
movi[idx].cod_tipo = ant_art.cod_tipo AND
|
||||
movi[idx].cod_sec = ant_art.cod_sec THEN
|
||||
LET numero_msg = 21
|
||||
CALL msg(numero_msg)
|
||||
LET existe = "S"
|
||||
LET ya = "S"
|
||||
ELSE
|
||||
IF ya = "N" THEN
|
||||
LET existe = "N"
|
||||
END IF
|
||||
END IF
|
||||
END IF
|
||||
END FOR
|
||||
END FUNCTION
|
||||
|
||||
@@ -0,0 +1,244 @@
|
||||
{
|
||||
-------------------------------------------------------------------------------
|
||||
PROGRAMA : ISPRRP002
|
||||
OBJETIVO : CATALOGO DE SUMINISTRO
|
||||
PROGRAMADOR : Ing. Juan Soto
|
||||
FECHA REALIZACION : Octubre 21, 1993
|
||||
-------------------------------------------------------------------------------
|
||||
}
|
||||
GLOBALS "isprgb000.4gl"
|
||||
|
||||
FUNCTION isprrp002()
|
||||
DEFINE idx_c SMALLINT
|
||||
DEFINE salir CHAR(1)
|
||||
DEFINE mes CHAR(2)
|
||||
DEFINE materia RECORD
|
||||
cod_n LIKE istb00002.cod_n,
|
||||
cod_grupo LIKE istb00002.cod_grupo,
|
||||
cod_tipo LIKE istb00002.cod_tipo,
|
||||
cod_sec LIKE istb00002.cod_sec,
|
||||
descrip_esp LIKE intb00001.descrip_esp,
|
||||
existencia LIKE istb00002.existencia,
|
||||
pto_reorden LIKE istb00002.pto_reorden,
|
||||
dia_llegada LIKE istb00002.dia_llegada,
|
||||
cod_nab LIKE istb00002.cod_nab,
|
||||
bodega LIKE istb00002.bodega ,
|
||||
unidad_med LIKE intb00001.unidad_med,
|
||||
base LIKE istb00002.base,
|
||||
costo LIKE istb00013.costo_st
|
||||
END RECORD,
|
||||
cod smallint
|
||||
DEFINE select_cost CHAR(1000)
|
||||
|
||||
DEFINE costos RECORD
|
||||
cod_n SMALLINT,
|
||||
cod_grupo SMALLINT,
|
||||
cod_tipo SMALLINT,
|
||||
cod_sec SMALLINT,
|
||||
fecha CHAR(2),
|
||||
costo LIKE istb00013.costo_st
|
||||
END RECORD
|
||||
|
||||
|
||||
OPTIONS
|
||||
FORM LINE 8,
|
||||
ERROR LINE 23,
|
||||
COMMENT LINE 21
|
||||
|
||||
CLEAR SCREEN
|
||||
|
||||
OPEN FORM isfmrp002 FROM "isfmrp002"
|
||||
DISPLAY FORM isfmrp002
|
||||
CALL pantalla()
|
||||
DISPLAY "isprrp002" AT 4,3 ATTRIBUTE(RED)
|
||||
DISPLAY "Catalogo de Suministros" AT 6,28 ATTRIBUTE(BLACK)
|
||||
|
||||
LET tipo_papel = 1
|
||||
CALL msgrp000(tipo_papel)
|
||||
CALL defecto(impresor) RETURNING imprime, letras.*, archivo
|
||||
|
||||
INPUT BY NAME decide
|
||||
ON KEY(CONTROL-P)
|
||||
CALL busca_printer() RETURNING imprime, letras.*, archivo
|
||||
|
||||
AFTER FIELD decide
|
||||
IF decide IS NULL THEN
|
||||
NEXT FIELD decide
|
||||
END IF
|
||||
END INPUT
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
CONSTRUCT BY NAME criterio ON a.cod_grupo,
|
||||
a.cod_tipo,a.cod_sec
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
DISPLAY " "
|
||||
AT 19,14
|
||||
|
||||
IF decide = "A" THEN
|
||||
LET SELEC =
|
||||
"SELECT a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,b.descrip_esp, ",
|
||||
" a.existencia,a.pto_reorden,a.dia_llegada,a.cod_nab, ",
|
||||
" a.bodega,b.unidad_med,a.base ",
|
||||
"FROM istb00002 a, intb00001 b ",
|
||||
"WHERE a.cod_n = b.cod_n AND a.cod_grupo = b.cod_grupo AND ",
|
||||
" a.cod_tipo = b.cod_tipo AND a.cod_sec = b.cod_sec AND ",
|
||||
" a.cod_n = 2 AND ",
|
||||
" a.status_t is NULL AND ",criterio clipped,
|
||||
" ORDER BY 5"
|
||||
|
||||
ELSE
|
||||
LET SELEC =
|
||||
"SELECT a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,b.descrip_esp, ",
|
||||
" a.existencia,a.pto_reorden,a.dia_llegada,a.cod_nab,",
|
||||
" a.bodega,b.unidad_med,a.base ",
|
||||
"FROM istb00002 a, intb00001 b ",
|
||||
"WHERE a.cod_n = b.cod_n AND a.cod_grupo = b.cod_grupo AND ",
|
||||
" a.cod_tipo = b.cod_tipo AND a.cod_sec = b.cod_sec AND ",
|
||||
" a.cod_n = 2 AND ",
|
||||
" a.status_t is NULL AND ",criterio clipped,
|
||||
" ORDER BY 1,2,3,4"
|
||||
END IF
|
||||
|
||||
DISPLAY "<< Estoy Buscando Los Suministros. >>" AT 19,14
|
||||
ATTRIBUTE (REVERSE,BOLD)
|
||||
display "opdeodod"
|
||||
|
||||
|
||||
PREPARE busca FROM selec
|
||||
DECLARE accion CURSOR FOR busca
|
||||
OPEN accion
|
||||
|
||||
DISPLAY " "
|
||||
AT 19,14
|
||||
|
||||
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
|
||||
AT 19,14 ATTRIBUTE (REVERSE)
|
||||
|
||||
START REPORT maestra TO archivo
|
||||
|
||||
FOREACH accion INTO materia.*
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
OUTPUT TO REPORT maestra(materia.*)
|
||||
|
||||
END FOREACH
|
||||
FINISH REPORT maestra
|
||||
RUN imprime
|
||||
|
||||
CLEAR SCREEN
|
||||
|
||||
END FUNCTION
|
||||
|
||||
REPORT maestra(x)
|
||||
DEFINE x RECORD
|
||||
cod_n LIKE istb00002.cod_n,
|
||||
cod_grupo LIKE istb00002.cod_grupo,
|
||||
cod_tipo LIKE istb00002.cod_tipo,
|
||||
cod_sec LIKE istb00002.cod_sec,
|
||||
descrip_esp LIKE intb00001.descrip_esp,
|
||||
existencia LIKE istb00002.existencia,
|
||||
pto_reorden LIKE istb00002.pto_reorden,
|
||||
dia_llegada LIKE istb00002.dia_llegada,
|
||||
cod_nab LIKE istb00002.cod_nab,
|
||||
bodega LIKE istb00002.bodega,
|
||||
unidad_med LIKE intb00001.unidad_med,
|
||||
base LIKE istb00002.base,
|
||||
costo LIKE istb00013.costo_st
|
||||
END RECORD
|
||||
|
||||
DEFINE l SMALLINT
|
||||
DEFINE hora CHAR(5)
|
||||
DEFINE varia CHAR(19)
|
||||
|
||||
|
||||
OUTPUT
|
||||
LEFT MARGIN 2
|
||||
|
||||
FORMAT
|
||||
PAGE HEADER
|
||||
|
||||
LET hora = time
|
||||
PRINT COLUMN 1, letras.comp_on
|
||||
PRINT COLUMN 1, "isprrp002",
|
||||
COLUMN 48, "R A Y . O . V A C D O M I N I C A N A, S. A.",
|
||||
COLUMN 135, "Pag. ",
|
||||
COLUMN 140, pageno using "###"
|
||||
PRINT COLUMN 1,
|
||||
COLUMN 51, "Sistema de Inventario de Suministro",
|
||||
COLUMN 135, today using "dd/mm/yyyy"
|
||||
PRINT COLUMN 1,
|
||||
COLUMN 56, "Catalogo de Suministro",
|
||||
COLUMN 138, hora
|
||||
|
||||
IF decide = "N" THEN
|
||||
LET varia = "N u m e r i c o" #clipped
|
||||
ELSE
|
||||
LET varia = "A l f a b e t i c o"
|
||||
END IF
|
||||
LET l = (142 - LENGTH(varia)) / 2
|
||||
PRINT COLUMN l, varia
|
||||
# ESTA LINEA TIENE 50 GUIONES
|
||||
|
||||
PRINT COLUMN 1, letras.comp_on
|
||||
PRINT COLUMN 1, "--------------------------------------------------",
|
||||
"--------------------------------------------------",
|
||||
"------------------------------------------"
|
||||
PRINT COLUMN 76, "Punto",
|
||||
COLUMN 93, "Base De",
|
||||
COLUMN 105, "Dia de"
|
||||
|
||||
PRINT COLUMN 1, "Nivel",
|
||||
COLUMN 15, "Descripcion",
|
||||
COLUMN 59, "Existencia",
|
||||
COLUMN 76, "Reorden ",
|
||||
COLUMN 93, "Cotizacion",
|
||||
COLUMN 105, "Llegada",
|
||||
COLUMN 120, "Arancel",
|
||||
COLUMN 131, "Bodega"
|
||||
|
||||
# ESTA LINEA TIENE 50 GUIONES
|
||||
|
||||
PRINT COLUMN 1, "--------------------------------------------------",
|
||||
"--------------------------------------------------",
|
||||
"------------------------------------------"
|
||||
|
||||
ON EVERY ROW
|
||||
PRINT COLUMN 1, x.cod_n USING "&","-",
|
||||
COLUMN 3, x.cod_grupo USING "&","-",
|
||||
COLUMN 5, x.cod_tipo USING "&&","-",
|
||||
COLUMN 8, x.cod_sec USING "&&&",
|
||||
COLUMN 15, x.descrip_esp,
|
||||
COLUMN 46, x.unidad_med,
|
||||
COLUMN 53, x.existencia USING "##,###.##",
|
||||
COLUMN 70, x.pto_reorden USING "##,###.##",
|
||||
COLUMN 88, x.base using "##,###,###.##",
|
||||
COLUMN 105, x.dia_llegada USING "###",
|
||||
COLUMN 116, x.cod_nab clipped,
|
||||
COLUMN 135, x.bodega USING "&&"
|
||||
|
||||
ON LAST ROW
|
||||
SKIP 1 LINE
|
||||
PRINT COLUMN 3, "Total de Registros Impresos = ", count(*) USING "####"
|
||||
PRINT COLUMN letras.comp_off
|
||||
|
||||
END REPORT
|
||||
|
||||
@@ -0,0 +1,232 @@
|
||||
{
|
||||
-------------------------------------------------------------------------------
|
||||
PROGRAMA : ISPRRP003
|
||||
OBJETIVO : REPORTE DE MOVIMIENTOS
|
||||
PROGRAMADOR : Ing. Juan Fco. Soto
|
||||
FECHA REALIZACION : Octubre 21, 1993
|
||||
-------------------------------------------------------------------------------
|
||||
}
|
||||
GLOBALS "isprgb000.4gl"
|
||||
|
||||
FUNCTION isprrp003()
|
||||
DEFINE idx_b SMALLINT
|
||||
DEFINE salir CHAR(1)
|
||||
|
||||
DEFINE transacc RECORD
|
||||
cod_n LIKE istb00002.cod_n,
|
||||
cod_grupo LIKE istb00002.cod_grupo,
|
||||
cod_tipo LIKE istb00002.cod_tipo,
|
||||
cod_sec LIKE istb00002.cod_sec,
|
||||
descrip_esp LIKE intb00001.descrip_esp,
|
||||
unidad_med LIKE intb00001.unidad_med,
|
||||
fecha LIKE istb00006.fecha,
|
||||
num_doc LIKE istb00006.num_doc,
|
||||
cod_mov LIKE istb00006.cod_mov,
|
||||
descrip_mov CHAR(30),
|
||||
cantidad_2 LIKE istb00006.cantidad_2
|
||||
END RECORD
|
||||
|
||||
DEFINE codigo_ant RECORD
|
||||
cod_n SMALLINT,
|
||||
cod_grupo SMALLINT,
|
||||
cod_tipo SMALLINT,
|
||||
cod_sec SMALLINT
|
||||
END RECORD
|
||||
|
||||
DEFINE balances RECORD
|
||||
cod_n SMALLINT,
|
||||
cod_grupo SMALLINT,
|
||||
cod_tipo SMALLINT,
|
||||
cod_sec SMALLINT,
|
||||
balance LIKE istb00006.cantidad_2
|
||||
END RECORD
|
||||
DEFINE select_balan CHAR(1000)
|
||||
|
||||
#WHENEVER ERROR CONTINUE
|
||||
|
||||
OPTIONS
|
||||
FORM LINE 9,
|
||||
ERROR LINE 23,
|
||||
COMMENT LINE 21
|
||||
|
||||
OPEN FORM isfmrp003 FROM "isfmrp003"
|
||||
DISPLAY FORM isfmrp003
|
||||
CALL pantalla()
|
||||
DISPLAY "isprrp003" AT 4,3 ATTRIBUTE(RED)
|
||||
DISPLAY "Movimientos" AT 6,34 ATTRIBUTE(BLACK)
|
||||
|
||||
LET tipo_papel = 1
|
||||
CALL msgrp000(tipo_papel)
|
||||
CALL defecto(impresor) RETURNING imprime, letras.*,archivo
|
||||
|
||||
IF int_flag != 0 THEN
|
||||
let numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
SLEEP 1
|
||||
LET int_flag = 0
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
INPUT BY NAME datos_cons.fech_in,datos_cons.fech_fi
|
||||
ON KEY(CONTROL-P)
|
||||
CALL busca_printer() RETURNING imprime, letras.*, archivo
|
||||
AFTER INPUT
|
||||
EXIT INPUT
|
||||
END INPUT
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
CLEAR SCREEN
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
CONSTRUCT criterio ON a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec
|
||||
FROM cod_n,cod_grupo,cod_tipo,cod_sec
|
||||
ON KEY(CONTROL-P)
|
||||
CALL busca_printer() RETURNING imprime, letras.*, archivo
|
||||
AFTER CONSTRUCT
|
||||
EXIT CONSTRUCT
|
||||
END CONSTRUCT
|
||||
|
||||
LET select_balan =
|
||||
"SELECT a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,b.descrip_esp, ",
|
||||
" b.unidad_med,a.fecha,a.num_doc,a.cod_mov,c.descrip_mov, ",
|
||||
" a.cantidad_2 ",
|
||||
"FROM istb00006 a,intb00001 b,istb00005 c ",
|
||||
"WHERE a.cod_n = b.cod_n AND a.cod_grupo = b.cod_grupo AND ",
|
||||
" a.cod_tipo = b.cod_tipo AND a.cod_sec = b.cod_sec AND ",
|
||||
criterio clipped," AND a.cod_mov=c.cod_mov AND a.status_t IS NULL AND ",
|
||||
" a.fecha BETWEEN ? AND ? "
|
||||
|
||||
DISPLAY "<< Buscando Informacion ... Espere Por Favor"
|
||||
AT 19,14 ATTRIBUTE (REVERSE,BOLD)
|
||||
|
||||
PREPARE busca_balan FROM select_balan
|
||||
DECLARE accion SCROLL CURSOR FOR busca_balan
|
||||
OPEN accion USING datos_cons.fech_in,datos_cons.fech_fi
|
||||
|
||||
START REPORT reporte3 TO archivo
|
||||
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
|
||||
AT 19,14 ATTRIBUTE (REVERSE)
|
||||
|
||||
WHILE STATUS != NOTFOUND
|
||||
FETCH accion INTO transacc.*
|
||||
|
||||
IF status = notfound THEN
|
||||
EXIT WHILE
|
||||
END IF
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
EXIT WHILE
|
||||
END IF
|
||||
|
||||
OUTPUT TO REPORT reporte3(transacc.*)
|
||||
END WHILE
|
||||
|
||||
FINISH REPORT reporte3
|
||||
RUN imprime
|
||||
CLEAR SCREEN
|
||||
END FUNCTION
|
||||
|
||||
REPORT reporte3(x)
|
||||
DEFINE x RECORD
|
||||
cod_n LIKE istb00002.cod_n,
|
||||
cod_grupo LIKE istb00002.cod_grupo,
|
||||
cod_tipo LIKE istb00002.cod_tipo,
|
||||
cod_sec LIKE istb00002.cod_sec,
|
||||
descrip_esp LIKE intb00001.descrip_esp,
|
||||
unidad_med LIKE intb00001.unidad_med,
|
||||
fecha LIKE istb00006.fecha,
|
||||
num_doc LIKE istb00006.num_doc,
|
||||
cod_mov LIKE istb00006.cod_mov,
|
||||
descrip_mov CHAR(30),
|
||||
cantidad_2 LIKE istb00006.cantidad_2
|
||||
END RECORD,
|
||||
cantidad DECIMAL(12,2)
|
||||
|
||||
DEFINE nombre CHAR(8),
|
||||
und CHAR(3) ,
|
||||
primera, busca,imprime CHAR(1),
|
||||
hora CHAR(5),
|
||||
balance_in,balan_ini,canti,balance_rp DECIMAL(12,2),
|
||||
entrada,salida DECIMAL(12,2)
|
||||
OUTPUT
|
||||
LEFT MARGIN 0
|
||||
ORDER BY x.cod_n,x.cod_grupo,x.cod_tipo,x.cod_sec,x.fecha,x.num_doc
|
||||
FORMAT
|
||||
PAGE HEADER
|
||||
|
||||
LET hora = time
|
||||
|
||||
PRINT letras.doce
|
||||
PRINT COLUMN 1, "isprrp003",
|
||||
COLUMN 22, "R A Y . O . V A C D O M I N I C A N A, S. A.",
|
||||
COLUMN 93, "Pag. ",
|
||||
COLUMN 98, pageno using "<&&"
|
||||
PRINT COLUMN 1,
|
||||
COLUMN 25, "Sistema de Inventario de Suministros",
|
||||
COLUMN 93, today using "dd/mm/yyyy"
|
||||
PRINT COLUMN 34, "Movimientos",
|
||||
COLUMN 96, hora
|
||||
SKIP 2 LINES
|
||||
|
||||
PRINT COLUMN 1, "Desde ",datos_cons.fech_in using "dd/mm/yyyy",
|
||||
COLUMN 18, "Hasta ",datos_cons.fech_fi using "dd/mm/yyyy"
|
||||
|
||||
PRINT COLUMN 1, "--------------------------------------------------",
|
||||
"--------------------------------------------------"
|
||||
|
||||
PRINT COLUMN 1, "Suministro",
|
||||
COLUMN 64, "Entradas",
|
||||
COLUMN 79, "Salidas",
|
||||
COLUMN 93, "Balance"
|
||||
|
||||
PRINT COLUMN 1, "--------------------------------------------------",
|
||||
"--------------------------------------------------"
|
||||
|
||||
BEFORE GROUP OF x.cod_sec
|
||||
|
||||
LET balance_in = 0
|
||||
SELECT SUM(a.cantidad_2) INTO balance_in FROM istb00006 a
|
||||
WHERE a.cod_n = x.cod_n AND a.cod_grupo = x.cod_grupo AND
|
||||
a.cod_tipo = x.cod_tipo AND a.cod_sec = x.cod_sec AND
|
||||
a.status_t IS NULL AND a.fecha < datos_cons.fech_in
|
||||
|
||||
IF balance_in is null THEN
|
||||
LET balance_in = 0
|
||||
END IF
|
||||
LET canti = balance_in
|
||||
PRINT COLUMN 1, x.cod_n USING "&","-",x.cod_grupo USING "&","-",
|
||||
x.cod_tipo USING "&&","-",x.cod_sec USING "&&&",
|
||||
" ",x.descrip_esp,
|
||||
#COLUMN 51, x.unidad_med
|
||||
COLUMN 73, "Inicial ---> ",
|
||||
COLUMN 89, balance_in using "---,---,---.##"
|
||||
|
||||
ON EVERY ROW
|
||||
|
||||
LET salida = null
|
||||
LET entrada = null
|
||||
IF x.cantidad_2 > 0 THEN
|
||||
LET salida = null
|
||||
LET entrada = x.cantidad_2
|
||||
ELSE
|
||||
LET salida = x.cantidad_2
|
||||
LET entrada = null
|
||||
END IF
|
||||
|
||||
LET canti = canti + x.cantidad_2
|
||||
PRINT COLUMN 8, x.num_doc USING "&&&&&&"," ",x.fecha USING "dd/mm/yyyy",
|
||||
COLUMN 24, "(",x.cod_mov using "&&",") ",x.descrip_mov CLIPPED,
|
||||
COLUMN 59, entrada USING "---,---,---.##",
|
||||
COLUMN 74, salida USING "---,---,---.##",
|
||||
COLUMN 89, canti USING "---,---,---.##"
|
||||
|
||||
AFTER GROUP OF x.cod_sec
|
||||
SKIP 1 LINE
|
||||
|
||||
END REPORT
|
||||
|
||||
@@ -0,0 +1,177 @@
|
||||
{
|
||||
-------------------------------------------------------------------------------
|
||||
PROGRAMA : ISPRRP008
|
||||
OBJETIVO : TIPOS DE MOVIMIENTOS
|
||||
PROGRAMADOR : Ing. Juan Soto
|
||||
FECHA REALIZACION : Octubre 21, 1993
|
||||
-------------------------------------------------------------------------------
|
||||
}
|
||||
GLOBALS "isprgb000.4gl"
|
||||
|
||||
FUNCTION isprrp008()
|
||||
|
||||
DEFINE tipo RECORD
|
||||
cod_mov LIKE istb00005.cod_mov,
|
||||
descrip_mov LIKE istb00005.descrip_mov,
|
||||
status_mov LIKE istb00005.status_mov,
|
||||
cuenta_1 LIKE istb00005.cuenta_1,
|
||||
cuenta_2 LIKE istb00005.cuenta_2,
|
||||
cuenta_3 LIKE istb00005.cuenta_3
|
||||
END RECORD
|
||||
|
||||
WHENEVER ERROR CONTINUE
|
||||
|
||||
OPTIONS
|
||||
FORM LINE 8,
|
||||
ERROR LINE 23,
|
||||
COMMENT LINE 21
|
||||
|
||||
CLEAR SCREEN
|
||||
|
||||
OPEN FORM isfmrp008 FROM "isfmrp008"
|
||||
DISPLAY FORM isfmrp008
|
||||
CALL pantalla()
|
||||
DISPLAY "isprrp008" AT 4,3 ATTRIBUTE(RED)
|
||||
DISPLAY "Tipos de Movimientos" AT 6,30 ATTRIBUTE(BLACK)
|
||||
|
||||
LET tipo_papel = 1
|
||||
CALL msgrp000(tipo_papel)
|
||||
CALL defecto(impresor) RETURNING imprime, letras.*, archivo
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
INPUT BY NAME decide
|
||||
ON KEY(CONTROL-P)
|
||||
CALL busca_printer() RETURNING imprime, letras.*, archivo
|
||||
|
||||
AFTER FIELD decide
|
||||
IF decide IS NULL THEN
|
||||
NEXT FIELD decide
|
||||
END IF
|
||||
END INPUT
|
||||
|
||||
CONSTRUCT criterio ON istb00005.cod_mov
|
||||
FROM cod_mov
|
||||
ON KEY(CONTROL-P)
|
||||
CALL busca_printer() RETURNING imprime, letras.*, archivo
|
||||
AFTER CONSTRUCT
|
||||
EXIT CONSTRUCT
|
||||
END CONSTRUCT
|
||||
|
||||
IF decide = "A" THEN
|
||||
LET SELEC = "SELECT cod_mov,descrip_mov,status_mov,cuenta_1, ",
|
||||
"cuenta_2,cuenta_3 ",
|
||||
" FROM istb00005 ",
|
||||
" WHERE ",
|
||||
criterio clipped,
|
||||
"AND status_t is null ",
|
||||
" ORDER BY 2"
|
||||
|
||||
ELSE
|
||||
LET SELEC = "SELECT cod_mov,descrip_mov,status_mov,cuenta_1, ",
|
||||
"cuenta_2,cuenta_3 ",
|
||||
" FROM istb00005 ",
|
||||
" WHERE ",
|
||||
criterio clipped,
|
||||
"AND status_t is null ",
|
||||
" ORDER BY 1"
|
||||
END IF
|
||||
|
||||
PREPARE busca FROM selec
|
||||
|
||||
CALL integridad()
|
||||
IF bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
DECLARE accion CURSOR FOR busca
|
||||
|
||||
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
|
||||
AT 19,14 ATTRIBUTE (REVERSE)
|
||||
|
||||
START REPORT movimiento TO archivo
|
||||
FOREACH accion INTO tipo.*
|
||||
IF status = NOTFOUND THEN
|
||||
EXIT FOREACH
|
||||
ELSE
|
||||
OUTPUT TO REPORT movimiento(tipo.*)
|
||||
END IF
|
||||
END FOREACH
|
||||
FINISH REPORT movimiento
|
||||
RUN imprime
|
||||
|
||||
CLEAR SCREEN
|
||||
|
||||
END FUNCTION
|
||||
|
||||
REPORT movimiento(x)
|
||||
DEFINE x RECORD
|
||||
cod_mov LIKE istb00005.cod_mov,
|
||||
descrip_mov LIKE istb00005.descrip_mov,
|
||||
status_mov LIKE istb00005.status_mov,
|
||||
cuenta_1 LIKE istb00005.cuenta_1,
|
||||
cuenta_2 LIKE istb00005.cuenta_2,
|
||||
cuenta_3 LIKE istb00005.cuenta_3
|
||||
END RECORD
|
||||
|
||||
|
||||
DEFINE hora CHAR(5)
|
||||
OUTPUT
|
||||
TOP MARGIN 0
|
||||
LEFT MARGIN 1
|
||||
FORMAT
|
||||
PAGE HEADER
|
||||
LET hora = time
|
||||
|
||||
PRINT COLUMN 1 ,letras.doce
|
||||
PRINT COLUMN 1, "isprrp008",
|
||||
COLUMN 22, "R A Y . O . V A C D O M I N I C A N A, S. A.",
|
||||
COLUMN 93, "Pag. ",
|
||||
COLUMN 96, pageno using "###"
|
||||
PRINT COLUMN 1,
|
||||
COLUMN 25, "Sistema de Inventario de Suministros",
|
||||
COLUMN 93, today using "dd/mm/yyyy"
|
||||
PRINT COLUMN 1,
|
||||
COLUMN 34, "Tipos de Movimientos",
|
||||
COLUMN 96, hora
|
||||
SKIP 1 LINE
|
||||
PRINT COLUMN 1, "----------------------------------------------------",
|
||||
"-----------------------------------------------"
|
||||
|
||||
PRINT COLUMN 1, "Codigo",
|
||||
COLUMN 9, "Descripcion del Movimiento",
|
||||
COLUMN 53, "Status",
|
||||
COLUMN 61, "Cuenta_1",
|
||||
COLUMN 72, "Cuenta_2",
|
||||
COLUMN 83, "Cuenta_3"
|
||||
|
||||
PRINT COLUMN 1, "----------------------------------------------------",
|
||||
"-----------------------------------------------"
|
||||
|
||||
ON EVERY ROW
|
||||
PRINT COLUMN 3, x.cod_mov using "<<",
|
||||
COLUMN 9, x.descrip_mov,
|
||||
COLUMN 55, x.status_mov,
|
||||
COLUMN 63, x.cuenta_1,
|
||||
COLUMN 74, x.cuenta_2,
|
||||
COLUMN 85, x.cuenta_3
|
||||
ON LAST ROW
|
||||
SKIP 1 LINE
|
||||
PRINT COLUMN 3, "Total de Registros Impresos = ", count(*) USING "####"
|
||||
PRINT COLUMN 3, ASCII 27, ASCII 80
|
||||
|
||||
END REPORT
|
||||
|
||||
@@ -0,0 +1,246 @@
|
||||
{
|
||||
-------------------------------------------------------------------------------
|
||||
PROGRAMA : ISPRRP009
|
||||
OBJETIVO : REPORTE EXISTENCIAS
|
||||
PROGRAMADOR : Ing. Juan Soto
|
||||
FECHA REALIZACION : Octubre 21, 1993
|
||||
-------------------------------------------------------------------------------
|
||||
}
|
||||
GLOBALS "isprgb000.4gl"
|
||||
|
||||
FUNCTION isprrp009()
|
||||
DEFINE mes CHAR(2)
|
||||
DEFINE idx_ant,idx_cos,idx_act SMALLINT
|
||||
DEFINE ano_act CHAR(4)
|
||||
DEFINE salir,primera CHAR(1)
|
||||
DEFINE balance_in DECIMAL(12,2)
|
||||
DEFINE existe RECORD
|
||||
cod_n LIKE intb00001.cod_n,
|
||||
cod_grupo LIKE intb00001.cod_grupo,
|
||||
cod_tipo LIKE intb00001.cod_tipo,
|
||||
cod_sec LIKE intb00001.cod_sec,
|
||||
descrip_esp LIKE intb00001.descrip_esp,
|
||||
unidad_med LIKE intb00001.unidad_med,
|
||||
base LIKE istb00002.base,
|
||||
fecha DATE,
|
||||
cantidad DECIMAL(10,2),
|
||||
codigo CHAR(10)
|
||||
END RECORD
|
||||
|
||||
DEFINE costos RECORD
|
||||
cod_n SMALLINT,
|
||||
cod_grupo SMALLINT,
|
||||
cod_tipo SMALLINT,
|
||||
cod_sec SMALLINT,
|
||||
fecha CHAR(2),
|
||||
costo_st LIKE istb00013.costo_st
|
||||
END RECORD
|
||||
|
||||
DEFINE actual RECORD
|
||||
cod_n SMALLINT,
|
||||
cod_grupo SMALLINT,
|
||||
cod_tipo SMALLINT,
|
||||
cod_sec SMALLINT,
|
||||
balance LIKE istb00006.cantidad_2
|
||||
END RECORD
|
||||
|
||||
DEFINE anterior RECORD
|
||||
cod_n SMALLINT,
|
||||
cod_grupo SMALLINT,
|
||||
cod_tipo SMALLINT,
|
||||
cod_sec SMALLINT,
|
||||
balance LIKE istb00006.cantidad_2
|
||||
END RECORD
|
||||
|
||||
DEFINE select_cost,select_act,select_ant CHAR(1000)
|
||||
|
||||
# WHENEVER ERROR CONTINUE
|
||||
|
||||
OPTIONS
|
||||
FORM LINE 8,
|
||||
ERROR LINE 23,
|
||||
COMMENT LINE 21
|
||||
|
||||
OPEN FORM isfmrp009 FROM "isfmrp009"
|
||||
DISPLAY FORM isfmrp009
|
||||
CALL pantalla()
|
||||
DISPLAY "isprrp009" AT 4,3 ATTRIBUTE(RED)
|
||||
DISPLAY "Existencia Anterior y Actual" AT 6,26 ATTRIBUTE(BLACK)
|
||||
|
||||
LET tipo_papel = 1
|
||||
CALL msgrp000(tipo_papel)
|
||||
CALL defecto(impresor) RETURNING imprime, letras.*, archivo
|
||||
|
||||
LABEL vuelve:
|
||||
INPUT BY NAME datos_cons.fech_in,datos_cons.fech_fi
|
||||
ON KEY(CONTROL-P)
|
||||
CALL busca_printer() RETURNING imprime, letras.*, archivo
|
||||
AFTER INPUT
|
||||
EXIT INPUT
|
||||
END INPUT
|
||||
|
||||
IF datos_cons.fech_in IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
GOTO vuelve
|
||||
END IF
|
||||
|
||||
IF datos_cons.fech_fi IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
GOTO vuelve
|
||||
END IF
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = false
|
||||
RETURN
|
||||
END IF
|
||||
LET ano_act = year(datos_cons.fech_fi)
|
||||
|
||||
CONSTRUCT criterio ON a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec
|
||||
FROM cod_n,cod_grupo, cod_tipo,cod_sec
|
||||
ON KEY(CONTROL-P)
|
||||
CALL busca_printer() RETURNING imprime, letras.*, archivo
|
||||
AFTER CONSTRUCT
|
||||
EXIT CONSTRUCT
|
||||
END CONSTRUCT
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = false
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
LET select_cost =
|
||||
"SELECT a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,b.descrip_esp, ",
|
||||
" b.unidad_med,c.base,a.fecha,a.cantidad_2 ",
|
||||
"FROM istb00006 a,intb00001 b,OUTER istb00002 c ",
|
||||
"WHERE a.cod_n = b.cod_n and a.cod_grupo = b.cod_grupo and ",
|
||||
" a.cod_tipo = b.cod_tipo and a.cod_sec = b.cod_sec and ",
|
||||
" a.cod_n = c.cod_n and a.cod_grupo = c.cod_grupo and ",
|
||||
" a.cod_tipo = c.cod_tipo and a.cod_sec = c.cod_sec and ",
|
||||
" a.fecha <= ? AND a.status_t is null AND ",criterio CLIPPED
|
||||
|
||||
DISPLAY "<< Buscandi Informacion... Espere Por Favor" AT 19,14
|
||||
|
||||
PREPARE busca_costo FROM select_cost
|
||||
DECLARE accion CURSOR FOR busca_costo
|
||||
OPEN accion USING datos_cons.fech_fi
|
||||
|
||||
START REPORT paul TO archivo
|
||||
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>" AT 19,14
|
||||
|
||||
FOREACH accion INTO existe.*
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
IF existe.base IS NULL THEN
|
||||
LET existe.base = 1
|
||||
END IF
|
||||
|
||||
LET existe.codigo = existe.cod_n USING "&","-",
|
||||
existe.cod_grupo USING "&","-",
|
||||
existe.cod_tipo USING "&&","-",
|
||||
existe.cod_sec USING "&&&"
|
||||
|
||||
OUTPUT TO REPORT paul(existe.*)
|
||||
END FOREACH
|
||||
FINISH REPORT paul
|
||||
RUN imprime
|
||||
CLEAR SCREEN
|
||||
END FUNCTION
|
||||
|
||||
REPORT paul(x)
|
||||
DEFINE x RECORD
|
||||
cod_n LIKE intb00001.cod_n,
|
||||
cod_grupo LIKE intb00001.cod_grupo,
|
||||
cod_tipo LIKE intb00001.cod_tipo,
|
||||
cod_sec LIKE intb00001.cod_sec,
|
||||
descrip_esp LIKE intb00001.descrip_esp,
|
||||
unidad_med LIKE intb00001.unidad_med,
|
||||
base LIKE istb00002.base,
|
||||
fecha DATE,
|
||||
cantidad DECIMAL(10,2),
|
||||
codigo CHAR(10)
|
||||
END RECORD
|
||||
|
||||
DEFINE costo,total_c,total_p DECIMAL (12,2)
|
||||
|
||||
DEFINE hora CHAR(5)
|
||||
OUTPUT
|
||||
TOP MARGIN 0
|
||||
LEFT MARGIN 0
|
||||
BOTTOM MARGIN 2
|
||||
ORDER BY x.codigo,x.fecha
|
||||
|
||||
FORMAT
|
||||
PAGE HEADER
|
||||
|
||||
LET hora = time
|
||||
|
||||
PRINT letras.negrillas_off,letras.comp_on
|
||||
PRINT COLUMN 1, "isprrp009",
|
||||
COLUMN 27, "R A Y . O . V A C D O M I N I C A N A, S. A.",
|
||||
COLUMN 100, "Pag. ",pageno using "###"
|
||||
PRINT COLUMN 27, " Sistema de Inventario de Suministros",
|
||||
COLUMN 100, today using "dd/mm/yyyy"
|
||||
PRINT COLUMN 27, " Existencia Anterior y Actual",
|
||||
COLUMN 103, hora
|
||||
|
||||
SKIP 1 LINES
|
||||
PRINT COLUMN 1, "--------------------------------------------------",
|
||||
"--------------------------------------------------",
|
||||
"-------"
|
||||
|
||||
PRINT COLUMN 51, "Existencia",
|
||||
COLUMN 68, "Existencia",
|
||||
COLUMN 84, "Costo",
|
||||
COLUMN 97, "Total"
|
||||
|
||||
PRINT COLUMN 1, "Suministro",
|
||||
COLUMN 51, "Al ",datos_cons.fech_in using "dd/mm/yyyy",
|
||||
COLUMN 68, "Al ", datos_cons.fech_fi using "dd/mm/yyyy",
|
||||
COLUMN 84, "Standard",
|
||||
COLUMN 97, "Al ",datos_cons.fech_fi using "dd/mm/yyyy"
|
||||
|
||||
PRINT COLUMN 1, "--------------------------------------------------",
|
||||
"--------------------------------------------------",
|
||||
"-------"
|
||||
PRINT letras.negrillas_off
|
||||
|
||||
BEFORE GROUP OF x.codigo
|
||||
SELECT MAX(a.costo_st) INTO costo FROM istb00013 a
|
||||
WHERE a.status_t IS NULL AND a.cod_n = x.cod_n AND
|
||||
a.cod_grupo = x.cod_grupo AND a.cod_tipo = x.cod_tipo AND
|
||||
a.cod_sec = x.cod_sec AND a.ano = YEAR(datos_cons.fech_fi) AND
|
||||
a.mes_fin = 12
|
||||
|
||||
IF costo IS NULL THEN
|
||||
LET costo = 0
|
||||
END IF
|
||||
|
||||
PRINT COLUMN 1, x.codigo," ",x.descrip_esp CLIPPED;
|
||||
|
||||
AFTER GROUP OF x.codigo
|
||||
PRINT COLUMN 48, GROUP SUM(x.cantidad)
|
||||
WHERE x.fecha <=datos_cons.fech_in
|
||||
USING "###,###,###.##",
|
||||
COLUMN 65, GROUP SUM(x.cantidad) USING "###,###,###.##",
|
||||
COLUMN 81, costo USING "###,###.##",
|
||||
COLUMN 95, GROUP SUM(x.cantidad) * costo
|
||||
USING "###,###,###.##"
|
||||
|
||||
ON LAST ROW
|
||||
print letras.negrillas_on
|
||||
PRINT COLUMN 1,"Total de Registros ---> ",COUNT(*) USING "###,###"
|
||||
print letras.negrillas_off,letras.comp_off
|
||||
END REPORT
|
||||
|
||||
@@ -0,0 +1,270 @@
|
||||
{
|
||||
-------------------------------------------------------------------------------
|
||||
PROGRAMA : ISPRRP010
|
||||
OBJETIVO : Acumulado por Tipo de Movimiento
|
||||
PROGRAMADOR : Ing. Betania Guerrero Perez
|
||||
FECHA REALIZACION : Octubre 21, 1993
|
||||
-------------------------------------------------------------------------------
|
||||
}
|
||||
GLOBALS "isprgb000.4gl"
|
||||
|
||||
FUNCTION isprrp010()
|
||||
|
||||
DEFINE salir CHAR(1)
|
||||
DEFINE select_ac,select_ant,select_p CHAR(1000)
|
||||
DEFINE idx_ac,ano,idx_a,idx_c SMALLINT
|
||||
DEFINE ano_act,c_ano CHAR(4)
|
||||
DEFINE fecha_2 CHAR(8)
|
||||
DEFINE fecha_ini_per CHAR(8)
|
||||
|
||||
DEFINE acumulado_a RECORD
|
||||
cod_mov LIKE istb00005.cod_mov,
|
||||
cod_n SMALLINT,
|
||||
cod_grupo SMALLINT,
|
||||
cod_Tipo SMALLINT,
|
||||
cod_Sec SMALLINT,
|
||||
consumo LIKE istb00006.cantidad_2
|
||||
END RECORD
|
||||
|
||||
DEFINE acumulado_ac RECORD
|
||||
cod_mov LIKE istb00005.cod_mov,
|
||||
cod_n SMALLINT,
|
||||
cod_grupo SMALLINT,
|
||||
cod_Tipo SMALLINT,
|
||||
cod_Sec SMALLINT,
|
||||
consumo LIKE istb00006.cantidad_2
|
||||
END RECORD
|
||||
|
||||
DEFINE acumulado_m RECORD
|
||||
cod_mov LIKE istb00005.cod_mov,
|
||||
cod_n SMALLINT,
|
||||
cod_grupo SMALLINT,
|
||||
cod_Tipo SMALLINT,
|
||||
cod_Sec SMALLINT,
|
||||
consumo LIKE istb00006.cantidad_2
|
||||
END RECORD
|
||||
|
||||
DEFINE acumulado RECORD
|
||||
cod_n LIKE intb00001.cod_n,
|
||||
cod_grupo LIKE intb00001.cod_grupo,
|
||||
cod_tipo LIKE intb00001.cod_tipo,
|
||||
cod_sec LIKE intb00001.cod_sec,
|
||||
descrip_esp LIKE intb00001.descrip_esp,
|
||||
unidad_med LIKE intb00001.unidad_med,
|
||||
base LIKE intb00002.base,
|
||||
cod_mov LIKE istb00006.cod_mov,
|
||||
fecha DATE,
|
||||
consumo DECIMAL(10,2)
|
||||
END RECORD
|
||||
|
||||
WHENEVER ERROR CONTINUE
|
||||
|
||||
OPTIONS
|
||||
FORM LINE 8,
|
||||
ERROR LINE 23,
|
||||
COMMENT LINE 21
|
||||
|
||||
OPEN FORM isfmrp010 FROM "isfmrp010"
|
||||
DISPLAY FORM isfmrp010
|
||||
CALL pantalla()
|
||||
DISPLAY "isprrp010" AT 4,3 ATTRIBUTE(RED)
|
||||
DISPLAY "Acumulado por Tipo de Movimiento" AT 6,24 ATTRIBUTE(BLACK)
|
||||
|
||||
LET tipo_papel = 2
|
||||
CALL msgrp000(tipo_papel)
|
||||
CALL defecto(impresor) RETURNING imprime, letras.*, archivo
|
||||
|
||||
INPUT BY NAME datos_cons.fech_in,datos_cons.fech_fi
|
||||
ON KEY(CONTROL-P)
|
||||
CALL busca_printer() RETURNING imprime, letras.*, archivo
|
||||
|
||||
AFTER FIELD fech_in
|
||||
IF datos_cons.fech_in IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD fech_in
|
||||
END IF
|
||||
|
||||
AFTER FIELD fech_fi
|
||||
IF datos_cons.fech_fi IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD fech_fi
|
||||
END IF
|
||||
|
||||
LET ano_act = year(datos_cons.fech_fi) USING "&&&&"
|
||||
|
||||
END INPUT
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = false
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
CONSTRUCT criterio ON c.cod_mov,c.cod_n,c.cod_grupo,c.cod_tipo,c.cod_sec
|
||||
FROM cod_mov,cod_n,cod_grupo, cod_tipo,cod_sec
|
||||
ON KEY(CONTROL-P)
|
||||
CALL busca_printer() RETURNING imprime, letras.*, archivo
|
||||
AFTER CONSTRUCT
|
||||
EXIT CONSTRUCT
|
||||
END CONSTRUCT
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = false
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
LET ano = year(datos_cons.fech_fi)
|
||||
LET ano = ano - 1
|
||||
LET c_ano = ano USING "&&&&"
|
||||
|
||||
LET select_ac =
|
||||
"SELECT c.cod_n,c.cod_grupo,c.cod_tipo,c.cod_sec,b.descrip_esp, ",
|
||||
" b.unidad_med,a.base,c.cod_mov,c.fecha,c.cantidad_2 ",
|
||||
"FROM istb00006 c,istb00002 a,intb00001 b ",
|
||||
"WHERE c.cod_n = b.cod_n AND c.cod_grupo = b.cod_grupo AND ",
|
||||
" c.cod_tipo = b.cod_tipo AND c.cod_sec = b.cod_sec AND ",
|
||||
" c.cod_n = a.cod_n AND c.cod_grupo = a.cod_grupo AND ",
|
||||
" c.cod_tipo = b.cod_tipo AND c.cod_sec = a.cod_sec AND ",
|
||||
criterio clipped," AND c.fecha <= ? AND c.cod_mov != 99 AND ",
|
||||
" c.status_t is null "
|
||||
|
||||
DISPLAY "<< Buscando Informacion ... Espere Por Favor " AT 19,14
|
||||
|
||||
PREPARE busca_act FROM select_ac
|
||||
DECLARE actual CURSOR FOR busca_act
|
||||
OPEN actual USING datos_cons.fech_fi
|
||||
DISPLAY " " AT 19,14
|
||||
|
||||
START REPORT clase TO archivo
|
||||
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>" AT 19,14
|
||||
|
||||
FOREACH actual INTO acumulado.*
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = false
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
IF acumulado.consumo IS NULL THEN
|
||||
LET acumulado.consumo = 0
|
||||
END IF
|
||||
IF acumulado.base IS NULL THEN
|
||||
LET acumulado.base = 1
|
||||
END IF
|
||||
|
||||
OUTPUT TO REPORT clase(acumulado.*,c_ano)
|
||||
END FOREACH
|
||||
|
||||
FINISH REPORT clase
|
||||
RUN imprime
|
||||
CLEAR SCREEN
|
||||
END FUNCTION
|
||||
|
||||
REPORT clase(x,c_ano1)
|
||||
DEFINE x RECORD
|
||||
cod_n LIKE intb00001.cod_n,
|
||||
cod_grupo LIKE intb00001.cod_grupo,
|
||||
cod_tipo LIKE intb00001.cod_tipo,
|
||||
cod_sec LIKE intb00001.cod_sec,
|
||||
descrip_esp LIKE intb00001.descrip_esp,
|
||||
unidad_med LIKE intb00001.unidad_med,
|
||||
base LIKE intb00002.base,
|
||||
cod_mov LIKE istb00006.cod_mov,
|
||||
fecha DATE,
|
||||
consumo DECIMAL(10,2)
|
||||
END RECORD
|
||||
|
||||
DEFINE descrip_mov CHAR(30)
|
||||
DEFINE c_ano1 char(4)
|
||||
|
||||
DEFINE hora CHAR(5)
|
||||
OUTPUT
|
||||
TOP MARGIN 0
|
||||
LEFT MARGIN 0
|
||||
BOTTOM MARGIN 2
|
||||
ORDER BY x.cod_mov,x.cod_n,x.cod_grupo,x.cod_tipo,x.cod_sec,x.fecha
|
||||
|
||||
FORMAT
|
||||
|
||||
PAGE HEADER
|
||||
|
||||
LET hora = time
|
||||
|
||||
PRINT letras.doce
|
||||
PRINT COLUMN 2, "isprrp010",
|
||||
COLUMN 28, "R A Y . O . V A C D O M I N I C A N A, S. A.",
|
||||
COLUMN 93, "Pag. ",
|
||||
COLUMN 98, pageno using "###"
|
||||
PRINT COLUMN 33, "Sistema de Inventario de Suministro",
|
||||
COLUMN 93, today using "dd/mm/yyyy"
|
||||
PRINT COLUMN 35, "Acumulado por Tipo de Movimiento",
|
||||
COLUMN 96, hora
|
||||
|
||||
SKIP 1 LINES
|
||||
|
||||
PRINT COLUMN 2, "Desde ",datos_cons.fech_in using "dd/mm/yyyy",
|
||||
COLUMN 21, "Hasta ", datos_cons.fech_fi using "dd/mm/yyyy"
|
||||
|
||||
PRINT COLUMN 1, "--------------------------------------------------",
|
||||
"--------------------------------------------------"
|
||||
|
||||
PRINT COLUMN 65, "Acumulado",
|
||||
COLUMN 79, "Acumulado Ano",
|
||||
COLUMN 93, "Porciento de"
|
||||
|
||||
PRINT COLUMN 1, "Suministros",
|
||||
COLUMN 50, "Periodo",
|
||||
COLUMN 65, "Al ",datos_cons.fech_fi using "dd/mm/yyyy",
|
||||
COLUMN 79, "Anterior ",c_ano1,
|
||||
COLUMN 93, "Variacion"
|
||||
|
||||
PRINT COLUMN 1, "--------------------------------------------------",
|
||||
"--------------------------------------------------"
|
||||
BEFORE GROUP OF x.cod_mov
|
||||
SELECT a.descrip_mov INTO descrip_mov FROM istb00005 a
|
||||
WHERE a.cod_mov = x.cod_mov
|
||||
|
||||
PRINT COLUMN 1, "Movimiento",
|
||||
COLUMN 13, x.cod_mov using "<<",
|
||||
COLUMN 17, "Descripcion",
|
||||
COLUMN 30, descrip_mov
|
||||
|
||||
skip 1 line
|
||||
# ON EVERY ROW
|
||||
|
||||
AFTER GROUP OF x.cod_sec
|
||||
PRINT COLUMN 1, x.cod_n USING "&","-",x.cod_grupo USING "&","-",
|
||||
x.cod_tipo USING "&&","-",x.cod_sec USING "&&&",
|
||||
" ",x.descrip_esp," ",x.unidad_med CLIPPED,
|
||||
COLUMN 47, GROUP SUM(x.consumo/x.base)
|
||||
WHERE x.fecha >= datos_cons.fech_in AND
|
||||
x.fecha <= datos_cons.fech_fi
|
||||
USING "##,###,###.##",
|
||||
COLUMN 61, GROUP SUM(x.consumo/x.base) USING "##,###,###.##",
|
||||
COLUMN 75, GROUP SUM(x.consumo/x.base)
|
||||
WHERE YEAR(x.fecha) = (c_ano1) USING "##,###,###.##",
|
||||
COLUMN 89, ((GROUP SUM(x.consumo/x.base)
|
||||
WHERE x.fecha >= datos_cons.fech_in AND
|
||||
x.fecha <= datos_cons.fech_fi)/
|
||||
(GROUP SUM(x.consumo/x.base)
|
||||
WHERE YEAR(x.fecha) = (c_ano1))-1)*100
|
||||
USING "#,###.##"," %"
|
||||
AFTER GROUP OF x.cod_mov
|
||||
SKIP TO TOP OF PAGE
|
||||
|
||||
ON LAST ROW
|
||||
SKIP 2 LINES
|
||||
PRINT COLUMN 1, "==================================================",
|
||||
"==================================================",
|
||||
"==============================="
|
||||
|
||||
PRINT COLUMN 4, "Total Registros Impresos =", count(*) USING "<<<<"
|
||||
PRINT COLUMN 4, ASCII 27, ASCII 80
|
||||
END REPORT
|
||||
|
||||
@@ -0,0 +1,251 @@
|
||||
{
|
||||
-------------------------------------------------------------------------------
|
||||
PROGRAMA : ISPRRP011
|
||||
OBJETIVO : Acumulado por Tipo de Movimiento
|
||||
PROGRAMADOR : Ing. Juan Fco. Soto
|
||||
FECHA REALIZACION : Octubre 21, 1993
|
||||
-------------------------------------------------------------------------------
|
||||
}
|
||||
GLOBALS "isprgb000.4gl"
|
||||
|
||||
FUNCTION isprrp011()
|
||||
|
||||
DEFINE salir CHAR(1)
|
||||
DEFINE select_ac,select_ant,select_p CHAR(1000)
|
||||
DEFINE idx_ac,ano,idx_a,idx_c SMALLINT
|
||||
DEFINE ano_act,c_ano CHAR(4)
|
||||
DEFINE fecha_2 CHAR(8)
|
||||
DEFINE fecha_ini_per CHAR(8)
|
||||
|
||||
DEFINE acumulado_a RECORD
|
||||
cod_mov LIKE istb00005.cod_mov,
|
||||
cod_n SMALLINT,
|
||||
cod_grupo SMALLINT,
|
||||
cod_Tipo SMALLINT,
|
||||
cod_Sec SMALLINT,
|
||||
consumo LIKE istb00006.cantidad_2
|
||||
END RECORD
|
||||
|
||||
DEFINE acumulado_ac RECORD
|
||||
cod_mov LIKE istb00005.cod_mov,
|
||||
cod_n SMALLINT,
|
||||
cod_grupo SMALLINT,
|
||||
cod_Tipo SMALLINT,
|
||||
cod_Sec SMALLINT,
|
||||
consumo LIKE istb00006.cantidad_2
|
||||
END RECORD
|
||||
|
||||
DEFINE costos RECORD
|
||||
cod_n SMALLINT,
|
||||
cod_grupo SMALLINT,
|
||||
cod_Tipo SMALLINT,
|
||||
cod_Sec SMALLINT,
|
||||
mes CHAR(2),
|
||||
costo LIKE istb00013.costo_st
|
||||
END RECORD
|
||||
|
||||
DEFINE acumulado RECORD
|
||||
cod_n LIKE intb00001.cod_n,
|
||||
cod_grupo LIKE intb00001.cod_grupo,
|
||||
cod_tipo LIKE intb00001.cod_tipo,
|
||||
cod_sec LIKE intb00001.cod_sec,
|
||||
descrip_esp LIKE intb00001.descrip_esp,
|
||||
unidad_med LIKE intb00001.unidad_med,
|
||||
fecha DATE,
|
||||
cod_mov LIKE istb00006.cod_mov,
|
||||
base LIKE istb00002.base,
|
||||
costo LIKE istb00013.costo_st,
|
||||
consumo DECIMAL(10,2)
|
||||
END RECORD
|
||||
|
||||
#WHENEVER ERROR CONTINUE
|
||||
|
||||
OPTIONS
|
||||
FORM LINE 8,
|
||||
ERROR LINE 23,
|
||||
COMMENT LINE 21
|
||||
|
||||
OPEN FORM isfmrp011 FROM "isfmrp011"
|
||||
DISPLAY FORM isfmrp011
|
||||
CALL pantalla()
|
||||
DISPLAY "isprrp011" AT 4,3 ATTRIBUTE(RED)
|
||||
DISPLAY "Operaciones Por Movimientos" AT 6,26 ATTRIBUTE(BLACK)
|
||||
|
||||
LET tipo_papel = 2
|
||||
CALL msgrp000(tipo_papel)
|
||||
CALL defecto(impresor) RETURNING imprime, letras.*, archivo
|
||||
|
||||
INPUT BY NAME datos_cons.fech_in,datos_cons.fech_fi
|
||||
ON KEY(CONTROL-P)
|
||||
CALL busca_printer() RETURNING imprime, letras.*, archivo
|
||||
|
||||
|
||||
AFTER FIELD fech_in
|
||||
IF datos_cons.fech_in IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD fech_in
|
||||
END IF
|
||||
|
||||
AFTER FIELD fech_fi
|
||||
IF datos_cons.fech_fi IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD fech_fi
|
||||
END IF
|
||||
|
||||
LET c_ano = YEAR(datos_cons.fech_fi) USING "&&&&"
|
||||
END INPUT
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = false
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
CONSTRUCT criterio ON c.cod_mov,c.cod_n,c.cod_grupo,c.cod_tipo,c.cod_sec
|
||||
FROM cod_mov,cod_n,cod_grupo,cod_tipo,cod_sec
|
||||
|
||||
ON KEY(CONTROL-P)
|
||||
CALL busca_printer() RETURNING imprime, letras.*, archivo
|
||||
AFTER CONSTRUCT
|
||||
EXIT CONSTRUCT
|
||||
END CONSTRUCT
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = false
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
LET select_ac =
|
||||
"SELECT c.cod_n,c.cod_grupo,c.cod_tipo,c.cod_sec,b.descrip_esp, ",
|
||||
" b.unidad_med,c.fecha,c.cod_mov,a.base,d.costo_st,c.cantidad_2 ",
|
||||
"FROM istb00006 c,istb00002 a,intb00001 b,OUTER istb00013 d ",
|
||||
"WHERE c.cod_n=b.cod_n AND c.cod_grupo=b.cod_grupo AND c.cod_tipo=b.cod_tipo ",
|
||||
" AND c.cod_sec=b.cod_sec AND c.cod_n=a.cod_n AND c.cod_grupo=a.cod_grupo ",
|
||||
" AND c.cod_tipo=a.cod_tipo AND c.cod_sec=a.cod_sec AND c.cod_n=d.cod_n AND ",
|
||||
" c.cod_grupo = d.cod_grupo AND c.cod_tipo = d.cod_tipo AND ",
|
||||
" c.cod_sec=d.cod_sec AND d.mes_fin=12 AND d.ano=? AND ",criterio clipped,
|
||||
" and c.fecha BETWEEN ? AND ? and c.status_t is NULL and c.cod_mov < 99"
|
||||
|
||||
DISPLAY "<< Estoy Buscando Informacion... Espere Por Favor "
|
||||
AT 19,14 ATTRIBUTE (REVERSE,BOLD)
|
||||
|
||||
PREPARE busca_ant FROM select_ac
|
||||
DECLARE actual SCROLL CURSOR FOR busca_ant
|
||||
OPEN actual USING c_ano,datos_cons.fech_in,datos_cons.fech_fi
|
||||
DISPLAY " "
|
||||
AT 19,14
|
||||
LET ano_act = year(datos_cons.fech_fi)
|
||||
|
||||
START REPORT opera TO archivo
|
||||
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
|
||||
AT 19,14 ATTRIBUTE (REVERSE)
|
||||
|
||||
FOREACH actual INTO acumulado.*
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = false
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
IF acumulado.base IS NULL THEN
|
||||
LET acumulado.base = 1
|
||||
END IF
|
||||
IF acumulado.costo IS NULL THEN
|
||||
LET acumulado.costo = 0
|
||||
END IF
|
||||
OUTPUT TO REPORT opera(acumulado.*)
|
||||
END FOREACH
|
||||
|
||||
FINISH REPORT opera
|
||||
RUN imprime
|
||||
CLEAR SCREEN
|
||||
END FUNCTION
|
||||
|
||||
REPORT opera(x)
|
||||
DEFINE x RECORD
|
||||
cod_n LIKE intb00001.cod_n,
|
||||
cod_grupo LIKE intb00001.cod_grupo,
|
||||
cod_tipo LIKE intb00001.cod_tipo,
|
||||
cod_sec LIKE intb00001.cod_sec,
|
||||
descrip_esp LIKE intb00001.descrip_esp,
|
||||
unidad_med LIKE intb00001.unidad_med,
|
||||
fecha DATE,
|
||||
cod_mov LIKE istb00006.cod_mov,
|
||||
base LIKE istb00002.base,
|
||||
costo LIKE istb00013.costo_st,
|
||||
consumo DECIMAL(10,2)
|
||||
END RECORD
|
||||
|
||||
DEFINE descrip_mov CHAR(30)
|
||||
DEFINE c_ano1 char(4)
|
||||
DEFINE hora CHAR(5)
|
||||
DEFINE total_p,total_m DECIMAL(12,2)
|
||||
OUTPUT
|
||||
TOP MARGIN 0
|
||||
LEFT MARGIN 0
|
||||
BOTTOM MARGIN 2
|
||||
ORDER BY x.cod_mov,x.cod_n,x.cod_grupo,x.cod_tipo,x.cod_sec,x.fecha
|
||||
FORMAT
|
||||
|
||||
PAGE HEADER
|
||||
|
||||
LET hora = time
|
||||
PRINT letras.doce
|
||||
PRINT COLUMN 1, "isprrp011",
|
||||
COLUMN 28, "R A Y . O . V A C D O M I N I C A N A, S. A.",
|
||||
COLUMN 93, "Pag. ",
|
||||
COLUMN 98, pageno using "###"
|
||||
PRINT COLUMN 31, "Sistema de Inventario de Suministros",
|
||||
COLUMN 93, today using "dd/mm/yyyy"
|
||||
PRINT COLUMN 33, "Operacion por Tipo de Movimiento",
|
||||
COLUMN 96, hora
|
||||
|
||||
SKIP 1 LINES
|
||||
|
||||
PRINT COLUMN 2, "Desde ",datos_cons.fech_in using "dd/mm/yyyy",
|
||||
COLUMN 21, "Hasta ", datos_cons.fech_fi using "dd/mm/yyyy"
|
||||
PRINT COLUMN 1, "--------------------------------------------------",
|
||||
"--------------------------------------------------"
|
||||
|
||||
PRINT COLUMN 63, "Costo"
|
||||
|
||||
PRINT COLUMN 1, "Suministro",
|
||||
COLUMN 50, "Cantidad",
|
||||
COLUMN 63, "Standard",
|
||||
COLUMN 86, "Total"
|
||||
PRINT COLUMN 1, "--------------------------------------------------",
|
||||
"--------------------------------------------------"
|
||||
BEFORE GROUP OF x.cod_mov
|
||||
|
||||
SELECT a.descrip_mov INTO descrip_mov FROM istb00005 a
|
||||
WHERE a.cod_mov = x.cod_mov
|
||||
|
||||
PRINT COLUMN 1, x.cod_mov using "##"," ",descrip_mov
|
||||
SKIP 1 LINE
|
||||
PRINT COLUMN 4, "Suministro Oficina"
|
||||
LET total_m = 0
|
||||
|
||||
AFTER GROUP OF x.cod_sec
|
||||
PRINT COLUMN 1, x.cod_n USING "&","-",x.cod_grupo USING "&","-",
|
||||
x.cod_tipo USING "&&","-",x.cod_sec USING "&&&",
|
||||
" ",x.descrip_esp," ",x.unidad_med CLIPPED," ",
|
||||
COLUMN 46, GROUP SUM(x.consumo/x.base) USING "##,###,###.##",
|
||||
COLUMN 60, GROUP AVG(x.costo) USING "#,###,###.####",
|
||||
COLUMN 79, GROUP SUM(x.consumo/x.base)* GROUP AVG(x.costo)
|
||||
USING "##,###,###.##"
|
||||
|
||||
AFTER GROUP OF x.cod_mov
|
||||
PRINT COLUMN 79, "-------------"
|
||||
PRINT COLUMN 63, "Total ---->",
|
||||
COLUMN 79, GROUP SUM(x.consumo/x.base)* GROUP AVG(x.costo)
|
||||
USING "##,###,###.##"
|
||||
|
||||
SKIP TO TOP OF PAGE
|
||||
END REPORT
|
||||
@@ -0,0 +1,153 @@
|
||||
{
|
||||
-------------------------------------------------------------------------------
|
||||
PROGRAMA : ISPRRP012
|
||||
FUNCION : Comparativo de la existencia calculada por movimientos y
|
||||
existencia en la maestra
|
||||
PROGRAMADOR : Juan Fco. Soto
|
||||
FECHA : Noviembre 24, 1992.
|
||||
-------------------------------------------------------------------------------
|
||||
}
|
||||
GLOBALS
|
||||
"isprgb000.4gl"
|
||||
|
||||
FUNCTION isprrp012()
|
||||
DEFINE comparativo RECORD
|
||||
cod_n SMALLINT,
|
||||
cod_grupo SMALLINT,
|
||||
cod_tipo SMALLINT,
|
||||
cod_sec SMALLINT,
|
||||
descrip_esp CHAR(30),
|
||||
unidad_med CHAR(3),
|
||||
base LIKE istb00002.base,
|
||||
existencia LIKE istb00002.existencia,
|
||||
movimiento LIKE istb00006.cantidad_2
|
||||
END RECORD
|
||||
|
||||
OPTIONS
|
||||
FORM LINE 8,
|
||||
ERROR LINE 24,
|
||||
COMMENT LINE 21
|
||||
|
||||
OPEN FORM isfmrp012 FROM "isfmrp012"
|
||||
DISPLAY FORM isfmrp012
|
||||
CALL pantalla()
|
||||
DISPLAY "isprrp012" AT 4,3 ATTRIBUTE(RED)
|
||||
DISPLAY "Comparativo Existencias" AT 6,28 ATTRIBUTE(BLACK)
|
||||
|
||||
# OPEN FORM INFMRP012 FROM "isfmrp012"
|
||||
# DISPLAY FORM INFMRP012
|
||||
|
||||
LET tipo_papel = 1
|
||||
CALL msgrp000(tipo_papel)
|
||||
CALL defecto(impresor) RETURNING imprime, letras.*, archivo
|
||||
|
||||
CONSTRUCT criterio ON a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec
|
||||
FROM cod_n,cod_grupo,cod_tipo,cod_sec
|
||||
ON KEY(CONTROL-P)
|
||||
CALL busca_printer() RETURNING imprime, letras.*, archivo
|
||||
AFTER CONSTRUCT
|
||||
EXIT CONSTRUCT
|
||||
END CONSTRUCT
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = false
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
LET selec =
|
||||
"SELECT a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,c.descrip_esp, ",
|
||||
" c.unidad_med,a.base,a.existencia,sum(b.cantidad_2) ",
|
||||
"FROM istb00002 a,intb00001 c,istb00006 b ",
|
||||
"WHERE a.cod_n = b.cod_n and a.cod_grupo = b.cod_grupo and ",
|
||||
" a.cod_tipo = b.cod_tipo and a.cod_sec = b.cod_sec and ",
|
||||
" a.cod_n = c.cod_n and a.cod_grupo = c.cod_grupo and ",
|
||||
" a.cod_tipo = c.cod_tipo and a.cod_sec = c.cod_sec and ",
|
||||
criterio clipped," GROUP BY 1,2,3,4,5,6,7,8"
|
||||
|
||||
DISPLAY "<< Buscando Informacion ... Espere Por Favor. >>" AT 19,14
|
||||
ATTRIBUTE (REVERSE,BOLD)
|
||||
|
||||
PREPARE busca_maestra FROM selec
|
||||
DECLARE diferencia CURSOR FOR busca_maestra
|
||||
OPEN diferencia
|
||||
|
||||
DISPLAY " " AT 19,14
|
||||
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>" AT 19,14
|
||||
ATTRIBUTE (REVERSE)
|
||||
|
||||
START REPORT dife TO archivo
|
||||
FOREACH diferencia INTO comparativo.*
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
OUTPUT TO REPORT dife(comparativo.*)
|
||||
END FOREACH
|
||||
FINISH REPORT dife
|
||||
RUN imprime
|
||||
CLEAR SCREEN
|
||||
END FUNCTION
|
||||
|
||||
REPORT dife(x)
|
||||
DEFINE x RECORD
|
||||
cod_n SMALLINT,
|
||||
cod_grupo SMALLINT,
|
||||
cod_tipo SMALLINT,
|
||||
cod_sec SMALLINT,
|
||||
descrip_esp CHAR(30),
|
||||
unidad_med CHAR(3),
|
||||
base LIKE istb00002.base,
|
||||
existencia LIKE istb00002.existencia,
|
||||
movimiento LIKE istb00006.cantidad_2
|
||||
END RECORD,
|
||||
hora char(5)
|
||||
|
||||
|
||||
OUTPUT
|
||||
LEFT MARGIN 0
|
||||
FORMAT
|
||||
PAGE HEADER
|
||||
LET hora = time
|
||||
|
||||
PRINT COLUMN 1, "isprrp012",
|
||||
COLUMN 19, "R A Y . O . V A C D O M I N I C A N A, S. A.",
|
||||
COLUMN 73, "Pag. ",
|
||||
COLUMN 76, pageno using "###"
|
||||
PRINT COLUMN 24, "Sistema de Inventario de Suministros",
|
||||
COLUMN 73, today using "dd/mm/yyyy"
|
||||
PRINT COLUMN 20, "Comparativo Existencia Maestra - S/ Movtos.",
|
||||
COLUMN 76, hora
|
||||
|
||||
PRINT COLUMN 1,
|
||||
"--------------------------------------------------------------------------------"
|
||||
PRINT COLUMN 50, "Existencia",
|
||||
COLUMN 69, "Existencia"
|
||||
|
||||
PRINT COLUMN 1, "Suministros",
|
||||
COLUMN 13, "Descripcion",
|
||||
COLUMN 50, "S/Maestra",
|
||||
COLUMN 69, "S/Movtos."
|
||||
|
||||
PRINT COLUMN 1,
|
||||
"--------------------------------------------------------------------------------"
|
||||
ON EVERY ROW
|
||||
|
||||
IF x.base IS NULL THEN
|
||||
LET x.base = 1
|
||||
END IF
|
||||
PRINT COLUMN 1, x.cod_n using "&","-",
|
||||
COLUMN 3, x.cod_grupo using "&","-",
|
||||
COLUMN 5, x.cod_tipo using "&&","-",
|
||||
COLUMN 8, x.cod_sec using "&&&",
|
||||
COLUMN 13, x.descrip_esp,
|
||||
COLUMN 34, x.unidad_med,
|
||||
COLUMN 38, x.existencia/x.base using "---,---,---.##",
|
||||
COLUMN 65, x.movimiento/x.base using "---,---,---.##"
|
||||
ON LAST ROW
|
||||
PRINT COLUMN 10, "Total Registros ==> ",count(*) using "#,###"
|
||||
END REPORT
|
||||
@@ -0,0 +1,233 @@
|
||||
{
|
||||
-------------------------------------------------------------------------------
|
||||
PROGRAMA : ISPRRP013
|
||||
OBJETIVO : Detallado por Tipo de Movimiento Modificado
|
||||
PROGRAMADOR : Tadeo A. Ferreras
|
||||
FECHA REALIZACION : Diciembre 13, 1994.
|
||||
-------------------------------------------------------------------------------
|
||||
}
|
||||
GLOBALS "isprgb000.4gl"
|
||||
|
||||
DEFINE ventas CHAR(1)
|
||||
DEFINE salir CHAR(1)
|
||||
DEFINE select_ac,select_ant,select_p CHAR(1000)
|
||||
DEFINE idx_ac,ano,idx_a,idx_c SMALLINT
|
||||
DEFINE ano_act CHAR(4)
|
||||
DEFINE fecha_1,fecha_2 DATETIME YEAR TO DAY
|
||||
DEFINE fecha_ini_per CHAR(8)
|
||||
|
||||
DEFINE reg_elim RECORD
|
||||
cod_mov LIKE intb00005.cod_mov,
|
||||
descripcion CHAR(30),
|
||||
num_doc INTEGER,
|
||||
fecha_doc DATE,
|
||||
cod_n SMALLINT,
|
||||
cod_grupo SMALLINT,
|
||||
cod_Tipo SMALLINT,
|
||||
cod_Sec SMALLINT,
|
||||
cantidad LIKE vetb00014.cantidad,
|
||||
descrip_esp CHAR(30),
|
||||
unidad_med CHAR(3),
|
||||
fech_crea LIKE intb00006.fech_crea,
|
||||
fech_mod LIKE intb00006.fech_mod,
|
||||
status_t LIKE intb00006.status_t
|
||||
END RECORD
|
||||
|
||||
FUNCTION isprrp013()
|
||||
# WHENEVER ERROR CONTINUE
|
||||
|
||||
OPTIONS
|
||||
FORM LINE 8,
|
||||
ERROR LINE 23,
|
||||
COMMENT LINE 21
|
||||
|
||||
OPEN FORM isfmrp013 FROM "isfmrp013"
|
||||
DISPLAY FORM isfmrp013
|
||||
CALL pantalla()
|
||||
DISPLAY "isprrp013" AT 4,3 ATTRIBUTE(RED)
|
||||
DISPLAY " Documentos Modificados " AT 6,30 ATTRIBUTE(BLACK)
|
||||
|
||||
LET tipo_papel = 1
|
||||
CALL msgrp000(tipo_papel)
|
||||
CALL defecto(impresor) RETURNING imprime, letras.*, archivo
|
||||
|
||||
CONSTRUCT criterio ON c.cod_n,c.cod_grupo,c.cod_tipo,c.cod_sec
|
||||
FROM cod_n,cod_grupo,cod_tipo,cod_sec
|
||||
ON KEY(CONTROL-P)
|
||||
CALL busca_printer() RETURNING imprime, letras.*, archivo
|
||||
AFTER CONSTRUCT
|
||||
EXIT CONSTRUCT
|
||||
END CONSTRUCT
|
||||
|
||||
INPUT BY NAME fecha_1,fecha_2
|
||||
ON KEY(CONTROL-P)
|
||||
CALL busca_printer() RETURNING imprime, letras.*, archivo
|
||||
|
||||
AFTER FIELD fecha_1
|
||||
IF fecha_1 IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD fecha_1
|
||||
END IF
|
||||
|
||||
AFTER FIELD fecha_2
|
||||
IF fecha_2 IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD fecha_2
|
||||
END IF
|
||||
|
||||
END INPUT
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = false
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
{LET YEAR(fecha_1) = YEAR(datos_cons.fech_in) USING "yyyy","-",
|
||||
LET MONTH(fecha_1) = MONTH(datos_cons.fech_in) USING "mm","-",
|
||||
LET DAY(fecha_1) = DAY(datos_cons.fech_in) USING "dd"
|
||||
LET YEAR(fecha_2) = YEAR(datos_cons.fech_fi) USING "yyyy","-",
|
||||
LET MONTH(fecha_2) = MONTH(datos_cons.fech_fi) USING "mm","-",
|
||||
LET DAY(fecha_2) = DAY(datos_cons.fech_fi) USING "dd"
|
||||
}
|
||||
LET selec =
|
||||
"SELECT c.cod_mov,a.descrip_mov,c.num_doc,c.fecha,c.cod_n,c.cod_grupo, ",
|
||||
" c.cod_tipo,c.cod_sec,c.cantidad_2,b.descrip_esp,b.unidad_med, ",
|
||||
" c.fech_crea,c.fech_mod,c.status_t ",
|
||||
"FROM istb00006 c,intb00001 b,istb00005 a ",
|
||||
"WHERE c.fech_mod between (?) AND (?) AND ",
|
||||
" c.us_mod IS NOT NULL AND ",
|
||||
" c.cod_n = b.cod_n AND c.cod_grupo=b.cod_grupo AND ",
|
||||
" c.cod_tipo = b.cod_tipo AND c.cod_sec = b.cod_sec AND ",
|
||||
" c.cod_mov = a.cod_mov AND ",criterio CLIPPED
|
||||
|
||||
DISPLAY "<< Estoy Buscando Documentos... Espere Por favor >>"
|
||||
AT 19,14 ATTRIBUTE (REVERSE,BOLD)
|
||||
|
||||
PREPARE comando FROM selec
|
||||
DECLARE actual CURSOR FOR COMANDO
|
||||
OPEN actual USING fecha_1,fecha_2
|
||||
|
||||
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
|
||||
AT 19,14 ATTRIBUTE (REVERSE)
|
||||
|
||||
START REPORT reporte_23 TO archivo
|
||||
|
||||
WHILE STATUS != NOTFOUND
|
||||
FETCH actual INTO reg_elim.*
|
||||
IF STATUS = NOTFOUND THEN
|
||||
EXIT WHILE
|
||||
END IF
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = false
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
DISPLAY "DATOS: ",reg_elim.cod_sec USING "&&&","-",
|
||||
reg_elim.cantidad USING "##,###,###.##" AT 20,14
|
||||
OUTPUT TO REPORT reporte_23(reg_elim.*)
|
||||
END WHILE
|
||||
|
||||
FINISH REPORT reporte_23
|
||||
RUN imprime
|
||||
CLEAR SCREEN
|
||||
END FUNCTION
|
||||
|
||||
REPORT reporte_23(x)
|
||||
DEFINE x RECORD
|
||||
cod_mov LIKE intb00005.cod_mov,
|
||||
descripcion CHAR(30),
|
||||
num_doc INTEGER,
|
||||
fecha_doc DATE,
|
||||
cod_n SMALLINT,
|
||||
cod_grupo SMALLINT,
|
||||
cod_Tipo SMALLINT,
|
||||
cod_Sec SMALLINT,
|
||||
cantidad LIKE vetb00014.cantidad,
|
||||
descrip_esp CHAR(30),
|
||||
unidad_med CHAR(3),
|
||||
fech_crea LIKE intb00006.fech_crea,
|
||||
fech_mod LIKE intb00006.fech_mod,
|
||||
status_t LIKE intb00006.status_t
|
||||
END RECORD
|
||||
|
||||
DEFINE primera CHAR(1)
|
||||
DEFINE c_ano1 char(4)
|
||||
|
||||
DEFINE hora CHAR(5)
|
||||
DEFINE total_p,total_m DECIMAL(12,2)
|
||||
OUTPUT
|
||||
TOP MARGIN 0
|
||||
LEFT MARGIN 0
|
||||
BOTTOM MARGIN 2
|
||||
|
||||
ORDER BY x.cod_mov,x.num_doc
|
||||
FORMAT
|
||||
|
||||
PAGE HEADER
|
||||
LET hora = time
|
||||
|
||||
PRINT letras.comp_on
|
||||
PRINT COLUMN 1, "isprrp013",
|
||||
COLUMN 28, "R A Y . O . V A C D O M I N I C A N A, S. A.",
|
||||
COLUMN 91, "Pag. ",
|
||||
COLUMN 96, pageno using "###"
|
||||
PRINT COLUMN 28, " Sistema de Inventario de Suministro Oficina",
|
||||
COLUMN 91, today using "dd/mm/yyyy"
|
||||
PRINT COLUMN 28, " Operacion de Registros Modificados",
|
||||
COLUMN 94, hora
|
||||
|
||||
SKIP 1 LINE
|
||||
|
||||
PRINT COLUMN 2, "Desde ",fecha_1,
|
||||
" Hasta ",fecha_2
|
||||
PRINT COLUMN 1, "--------------------------------------------------",
|
||||
"--------------------------------------------------",
|
||||
"--------------------------------------"
|
||||
|
||||
PRINT COLUMN 1, "Docto",
|
||||
COLUMN 10, "Fecha",
|
||||
COLUMN 22, "Articulo",
|
||||
COLUMN 80, "Cantidad",
|
||||
COLUMN 95, "Fecha Creacion",
|
||||
COLUMN 115, "Fecha Modif.",
|
||||
COLUMN 133, "Status"
|
||||
|
||||
PRINT letras.comp_on
|
||||
PRINT COLUMN 1, "--------------------------------------------------",
|
||||
"--------------------------------------------------",
|
||||
"--------------------------------------"
|
||||
|
||||
BEFORE GROUP OF x.cod_mov
|
||||
|
||||
PRINT letras.negrillas_on
|
||||
PRINT COLUMN 1, x.cod_mov using "##"," ",x.descripcion
|
||||
PRINT letras.negrillas_off
|
||||
|
||||
BEFORE GROUP OF x.num_doc
|
||||
|
||||
PRINT COLUMN 1, x.num_doc USING "######",
|
||||
COLUMN 10, x.fecha_doc USING "dd/mm/yyyy";
|
||||
|
||||
ON EVERY ROW
|
||||
PRINT COLUMN 22, x.cod_n USING "&","-",x.cod_grupo USING "&","-",
|
||||
x.cod_tipo USING "&&","-",x.cod_sec USING "&&&"," ",
|
||||
x.descrip_esp clipped,
|
||||
COLUMN 75, x.cantidad USING "###,###,###.##",
|
||||
COLUMN 95, x.fech_crea,
|
||||
COLUMN 115, x.fech_mod," ",x.status_t
|
||||
|
||||
AFTER GROUP OF x.cod_mov
|
||||
SKIP 1 LINE
|
||||
PRINT COLUMN 1, "Total Registros Por Movimiento ",
|
||||
GROUP COUNT(*) USING "###,###"
|
||||
ON LAST ROW
|
||||
PRINT letras.normal
|
||||
|
||||
END REPORT
|
||||
@@ -0,0 +1,12 @@
|
||||
fgl2p ismnrp000.4gl
|
||||
fgl2p isprrp002.4gl
|
||||
fgl2p isprrp003.4gl
|
||||
fgl2p isprrp008.4gl
|
||||
fgl2p isprrp009.4gl
|
||||
fgl2p isprrp010.4gl
|
||||
fgl2p isprrp011.4gl
|
||||
fgl2p isprrp012.4gl
|
||||
fgl2p isprrp013.4gl
|
||||
|
||||
fgl2p -o ismnrp000.42r ismnrp000.42m isprrp002.42m isprrp003.42m isprrp008.42m isprrp009.42m isprrp010.42m isprrp011.42m isprrp012.42m isprrp013.42m msg.42m seg000.42m msgrp000.42m
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,72 @@
|
||||
{
|
||||
----------------------------------------------------------------------------
|
||||
PROGRAMA : ISMNMT06
|
||||
OBJETIVO : Sub Menu Mantenimiento Movimientos
|
||||
Inventario de Suministro.
|
||||
PROGRAMADOR : Juan Fco. Soto (Johnny)
|
||||
FECHA REALIZACION : Octubre 22, 1993.
|
||||
----------------------------------------------------------------------------
|
||||
PROGRAMADOR : Lic. Abner Montalvo
|
||||
FECHA REALIZACION : Marzo 19, 1999.
|
||||
|
||||
OBJETIVO : Utilizar COMMAND para los menues de este sistema.
|
||||
Optimizar el procedimiento de llamadas de programas.
|
||||
---------------------------------------------------------------------------
|
||||
}
|
||||
DATABASE rayovac
|
||||
DEFINE bandera,numero_msg INTEGER
|
||||
|
||||
FUNCTION ismnmt06()
|
||||
CLEAR SCREEN
|
||||
CALL opciones_ismnmt006()
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION opciones_ismnmt006()
|
||||
DEFINE opt CHAR(2)
|
||||
DEFINE p_user CHAR(9)
|
||||
DEFINE luz CHAR(5)
|
||||
|
||||
OPTIONS
|
||||
PROMPT LINE 8,
|
||||
ERROR LINE 24
|
||||
CALL desplega_mnmt006()
|
||||
|
||||
MENU "Mantenimientos: "
|
||||
COMMAND "1"
|
||||
CALL seg000(1,"ismnmt006") RETURNING luz
|
||||
IF luz = "azul" THEN
|
||||
RUN "fglrun %FGLPROG%\\isprmt016()"
|
||||
CALL desplega_mnmt006()
|
||||
END IF
|
||||
|
||||
COMMAND "2"
|
||||
CALL seg000(2,"ismnmt006") RETURNING luz
|
||||
IF luz = "azul" THEN
|
||||
RUN "fglrun %FGLPROG%\\isprmt036()"
|
||||
CALL desplega_mnmt006()
|
||||
END IF
|
||||
|
||||
COMMAND "3"
|
||||
CALL seg000(3,"ismnmt006") RETURNING luz
|
||||
IF luz = "azul" THEN
|
||||
RUN "fglrun %FGLPROG%\\isprmt056()"
|
||||
CALL desplega_mnmt006()
|
||||
END IF
|
||||
|
||||
COMMAND "Retornar" "Retorna Menu Principal"
|
||||
EXIT MENU
|
||||
|
||||
END MENU
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION desplega_mnmt006()
|
||||
CLEAR SCREEN
|
||||
CALL pantalla()
|
||||
DISPLAY " Movimientos De Almacen " AT 6,22
|
||||
DISPLAY "ismnmt006" AT 4,3 ATTRIBUTE(RED)
|
||||
DISPLAY "1- Suministros Devueltos al Suplidor isprmt016" AT 10,1
|
||||
DISPLAY "2- Requisicion Suministros isprmt036" AT 11,1
|
||||
DISPLAY "3- Actualizacion de Documentos isprmt056" AT 12,1
|
||||
# DISPLAY "R- Retornar Menu Anterior " AT 15,1
|
||||
# ATTRIBUTE (RED)
|
||||
END FUNCTION
|
||||
@@ -0,0 +1,20 @@
|
||||
DATABASE rayovac
|
||||
|
||||
FUNCTION msg(numero_msg)
|
||||
DEFINE numero_msg SMALLINT
|
||||
DEFINE descripcion CHAR (60)
|
||||
SELECT desc_msg INTO descripcion FROM msgtable
|
||||
WHERE cod_msg = numero_msg
|
||||
|
||||
IF status = NOTFOUND THEN
|
||||
LET numero_msg = 22
|
||||
SELECT desc_msg INTO descripcion FROM msgtable
|
||||
WHERE cod_msg = numero_msg
|
||||
ERROR descripcion ATTRIBUTE(BOLD)
|
||||
ELSE
|
||||
ERROR descripcion ATTRIBUTE(BOLD)
|
||||
LET numero_msg = 0
|
||||
END IF
|
||||
END FUNCTION
|
||||
|
||||
|
||||
@@ -0,0 +1,151 @@
|
||||
{
|
||||
Esta funcion se utiliza para dsplegar mensajes de los reportes de
|
||||
los sistemas de Ray-O-Vac Dominicana.
|
||||
|
||||
Realizada por Lic. Abner Montalvo y Johnny Soto Agosto 21, 1992
|
||||
}
|
||||
DATABASE rayovac
|
||||
|
||||
FUNCTION msgrp000(tipo_papel)
|
||||
DEFINE tipo_papel SMALLINT,
|
||||
longitud CHAR(11),
|
||||
linea_papel CHAR(50)
|
||||
CASE
|
||||
WHEN tipo_papel = 1
|
||||
LET longitud = " 9 1/2 x 11"
|
||||
WHEN tipo_papel = 2
|
||||
LET longitud = "14 7/8 x 11"
|
||||
END CASE
|
||||
|
||||
LET linea_papel = "Coloque papel ",longitud," en la impresora."
|
||||
DISPLAY linea_papel
|
||||
AT 15,14
|
||||
DISPLAY
|
||||
"<Ctrl-P> Elejir Printer Asegurese de que la impresora este encendida."
|
||||
AT 16,10 ATTRIBUTE(REVERSE,YELLOW)
|
||||
DISPLAY "<Esc> Ejecuta impresion <Ctrl-C> Cancela impresion"
|
||||
AT 18,14
|
||||
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION busca_printer()
|
||||
DEFINE pcurr,impresor,idx SMALLINT,
|
||||
negrillas_on,
|
||||
negrillas_off,
|
||||
doble_on,
|
||||
doble_off,
|
||||
doce,
|
||||
comp_on,
|
||||
comp_off,
|
||||
normal CHAR(6)
|
||||
|
||||
DEFINE dspprt ARRAY[10] OF RECORD
|
||||
nombre CHAR(30),
|
||||
codigo SMALLINT,
|
||||
puerto LIKE prttb00001.puerto,
|
||||
prtcodigo LIKE prttb00001.prtcodigo
|
||||
END RECORD,
|
||||
prt RECORD LIKE prttb00001.*,
|
||||
prtcodigo LIKE prttb00001.prtcodigo
|
||||
|
||||
OPEN WINDOW impresoras AT 10,5 WITH FORM "msgfmrp" ATTRIBUTE
|
||||
(BORDER,FORM LINE FIRST + 1)
|
||||
|
||||
DECLARE busca CURSOR FOR
|
||||
SELECT * FROM prttb00001
|
||||
ORDER BY 1
|
||||
|
||||
LET idx = 1
|
||||
FOREACH busca INTO prt.*
|
||||
LET dspprt[idx].nombre = prt.nombre
|
||||
LET dspprt[idx].codigo = prt.codigo
|
||||
LET dspprt[idx].puerto = prt.puerto
|
||||
LET dspprt[idx].prtcodigo = prt.prtcodigo
|
||||
LET idx = idx + 1
|
||||
END FOREACH
|
||||
|
||||
CALL set_count(idx-1)
|
||||
DISPLAY ARRAY dspprt TO s_prt.*
|
||||
|
||||
LET pcurr = arr_curr()
|
||||
LET impresor = dspprt[pcurr].codigo
|
||||
LET prtcodigo = dspprt[pcurr].prtcodigo
|
||||
LET prt.puerto = dspprt[pcurr].puerto
|
||||
|
||||
CASE
|
||||
WHEN prtcodigo = 1
|
||||
LET doble_on = ASCII 14
|
||||
LET doble_off = ASCII 18
|
||||
LET negrillas_on = ASCII 27, ASCII 69
|
||||
LET negrillas_off = ASCII 27, ASCII 70
|
||||
LET comp_on = ASCII 15
|
||||
LET comp_off = ASCII 18
|
||||
LET doce = ASCII 27,ASCII 77
|
||||
LET normal = ASCII 27,ASCII 80
|
||||
EXIT CASE
|
||||
WHEN prtcodigo = 2
|
||||
LET doble_on = ASCII 001
|
||||
LET doble_off = ASCII 002
|
||||
LET negrillas_on = ASCII 027, ASCII 098
|
||||
LET negrillas_off = ASCII 027, ASCII 099
|
||||
LET comp_on = ASCII 031
|
||||
LET comp_off = ASCII 029
|
||||
LET doce = ASCII 030
|
||||
LET normal = ASCII 029
|
||||
EXIT CASE
|
||||
END CASE
|
||||
CLOSE WINDOW impresoras
|
||||
RETURN prt.puerto,negrillas_on,negrillas_off,doble_on,doble_off,comp_on,comp_off,doce, normal
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION defecto(impresor)
|
||||
DEFINE impresor,idx SMALLINT,
|
||||
negrillas_on,
|
||||
negrillas_off,
|
||||
doble_on,
|
||||
doble_off,
|
||||
doce,
|
||||
comp_on,
|
||||
comp_off,
|
||||
normal CHAR(6),
|
||||
prt RECORD LIKE prttb00001.*
|
||||
|
||||
SELECT * INTO prt.* FROM prttb00001 a
|
||||
WHERE codigo = impresor
|
||||
|
||||
CASE
|
||||
WHEN prt.prtcodigo = 1
|
||||
LET doble_on = ASCII 14
|
||||
LET doble_off = ASCII 18
|
||||
LET negrillas_on = ASCII 27, ASCII 69
|
||||
LET negrillas_off = ASCII 27, ASCII 70
|
||||
LET comp_on = ASCII 15
|
||||
LET comp_off = ASCII 18
|
||||
LET doce = ASCII 27,ASCII 77
|
||||
LET normal = ASCII 27,ASCII 80
|
||||
EXIT CASE
|
||||
WHEN prt.prtcodigo = 2 {Printer Central. Contabilidad}
|
||||
LET doble_on = ASCII 001
|
||||
LET doble_off = ASCII 002
|
||||
LET negrillas_on = ASCII 027, ASCII 098
|
||||
LET negrillas_off = ASCII 027, ASCII 099
|
||||
LET comp_on = ASCII 031
|
||||
LET comp_off = ASCII 029
|
||||
LET doce = ASCII 030
|
||||
LET normal = ASCII 029
|
||||
EXIT CASE
|
||||
WHEN impresor = 3
|
||||
LET doble_on = ASCII 14
|
||||
LET doble_off = ASCII 18
|
||||
LET negrillas_on = ASCII 27, ASCII 69
|
||||
LET negrillas_off = ASCII 27, ASCII 70
|
||||
LET comp_on = ASCII 15
|
||||
LET comp_off = ASCII 18
|
||||
LET doce = ASCII 27,ASCII 77
|
||||
LET normal = ASCII 27,ASCII 80
|
||||
EXIT CASE
|
||||
END CASE
|
||||
RETURN prt.puerto,negrillas_on,negrillas_off,doble_on,doble_off,
|
||||
comp_on,comp_off,doce,normal
|
||||
END FUNCTION
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
{
|
||||
-----------------------------------------------------------------------------
|
||||
PROGRAMA : SEG000
|
||||
OBJETIVO : Controlar el acceso de los usuarios a los sistemas de la
|
||||
Empresa.
|
||||
PROGRAMADOR : Ing. Juan Soto
|
||||
FECHA : Marzo 17, 1994.
|
||||
-----------------------------------------------------------------------------
|
||||
PROGRAMADOR : Lic. Abner Montalvo
|
||||
FECHA : Marzo 2, 1999
|
||||
|
||||
OBJETIVO : Optimizacion de la funcion. No es necesario recibir el parametro
|
||||
"usuarios" porque el mismo se obtiene de la funcion "user".
|
||||
Este cambio elimina el select que busca el codigo del usuario en
|
||||
todos los menues de los sistemas.
|
||||
-----------------------------------------------------------------------------
|
||||
}
|
||||
FUNCTION seg000(opt,p_menu)
|
||||
DEFINE opt CHAR(2)
|
||||
DEFINE luz CHAR(4)
|
||||
DEFINE p_menu CHAR(9)
|
||||
DEFINE usuarios CHAR(9)
|
||||
DEFINE no_reg,p_opcion,numero SMALLINT
|
||||
|
||||
WHENEVER ERROR CONTINUE
|
||||
OPTIONS
|
||||
ERROR LINE 24
|
||||
LET luz = "azul"
|
||||
LET p_opcion = opt
|
||||
|
||||
SELECT count(*) INTO no_reg FROM seg0001
|
||||
WHERE usuario = user
|
||||
|
||||
IF no_reg = 1 THEN
|
||||
SELECT opcion INTO p_opcion FROM seg0001
|
||||
WHERE usuario = user
|
||||
END IF
|
||||
|
||||
IF p_opcion != 99 THEN
|
||||
SELECT UNIQUE a.usuario FROM seg0001 a
|
||||
WHERE a.usuario = user and
|
||||
a.opcion = p_opcion and
|
||||
a.us_menu = p_menu
|
||||
|
||||
IF status = notfound THEN
|
||||
LET status = 0
|
||||
LET luz = "roja"
|
||||
END IF
|
||||
END IF
|
||||
|
||||
IF p_opcion = 99 THEN
|
||||
LET luz = "azul"
|
||||
END IF
|
||||
|
||||
IF luz = "roja" THEN
|
||||
ERROR "NO TIENE PERMISO PARA UTILIZAR OPCION"
|
||||
END IF
|
||||
|
||||
RETURN luz
|
||||
END FUNCTION
|
||||
@@ -0,0 +1,53 @@
|
||||
{
|
||||
============================================================================
|
||||
PROGRAMA : TERMOMETRO
|
||||
OBJETIVO : DESPLEGAR TERMOMETRO PORCENTUAL PARA LOS REPORTES
|
||||
PROGRAMADOR : JUAN F. SOTO
|
||||
FECHA : MARZO 10, 1995
|
||||
============================================================================
|
||||
}
|
||||
|
||||
DATABASE rayovac
|
||||
|
||||
GLOBALS
|
||||
DEFINE cuenta1,p,cuenta SMALLINT
|
||||
END GLOBALS
|
||||
|
||||
FUNCTION termometro(registros,primera)
|
||||
DEFINE registros INTEGER
|
||||
DEFINE i,veces SMALLINT
|
||||
DEFINE porcentaje,vez DECIMAL(8,2)
|
||||
DEFINE primera CHAR(1)
|
||||
|
||||
IF primera = "S" THEN
|
||||
LET porcentaje = 0
|
||||
LET primera = "N"
|
||||
LET p = 27
|
||||
CALL fgl_drawbox(3,8,19,18)
|
||||
CALL fgl_drawbox(3,35,19,26)
|
||||
IF registros <= 33 THEN
|
||||
FOR i = 1 TO 33
|
||||
LET cuenta1 = 1
|
||||
DISPLAY " " AT 20,p ATTRIBUTE(REVERSE,BOLD)
|
||||
LET p = p + 1
|
||||
END FOR
|
||||
END IF
|
||||
END IF
|
||||
|
||||
IF registros > 33 THEN
|
||||
LET vez = registros / 33
|
||||
LET veces = vez USING "#####"
|
||||
IF cuenta >= veces THEN
|
||||
LET cuenta = 0
|
||||
IF p <= 58 THEN
|
||||
DISPLAY " " AT 20,p ATTRIBUTE(REVERSE,BOLD)
|
||||
END IF
|
||||
LET p = p + 1
|
||||
END IF
|
||||
LET porcentaje = (cuenta1/registros) * 100
|
||||
DISPLAY porcentaje using "###","%" AT 20,19 ATTRIBUTE(BOLD)
|
||||
LET cuenta = cuenta + 1
|
||||
LET cuenta1 = cuenta1 + 1
|
||||
END IF
|
||||
|
||||
END FUNCTION
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,53 @@
|
||||
{
|
||||
============================================================================
|
||||
PROGRAMA : TERMOMETRO
|
||||
OBJETIVO : DESPLEGAR TERMOMETRO PORCENTUAL PARA LOS REPORTES
|
||||
PROGRAMADOR : JUAN F. SOTO
|
||||
FECHA : MARZO 10, 1995
|
||||
============================================================================
|
||||
}
|
||||
|
||||
DATABASE rayovac
|
||||
|
||||
GLOBALS
|
||||
DEFINE cuenta1,p,cuenta SMALLINT
|
||||
END GLOBALS
|
||||
|
||||
FUNCTION termometro(registros,primera)
|
||||
DEFINE registros INTEGER
|
||||
DEFINE i,veces SMALLINT
|
||||
DEFINE porcentaje,vez DECIMAL(8,2)
|
||||
DEFINE primera CHAR(1)
|
||||
|
||||
IF primera = "S" THEN
|
||||
LET porcentaje = 0
|
||||
LET primera = "N"
|
||||
LET p = 27
|
||||
CALL fgl_drawbox(3,8,19,18)
|
||||
CALL fgl_drawbox(3,35,19,26)
|
||||
IF registros <= 33 THEN
|
||||
FOR i = 1 TO 33
|
||||
LET cuenta1 = 1
|
||||
DISPLAY " " AT 20,p ATTRIBUTE(REVERSE,BOLD)
|
||||
LET p = p + 1
|
||||
END FOR
|
||||
END IF
|
||||
END IF
|
||||
|
||||
IF registros > 33 THEN
|
||||
LET vez = registros / 33
|
||||
LET veces = vez USING "#####"
|
||||
IF cuenta >= veces THEN
|
||||
LET cuenta = 0
|
||||
IF p <= 58 THEN
|
||||
DISPLAY " " AT 20,p ATTRIBUTE(REVERSE,BOLD)
|
||||
END IF
|
||||
LET p = p + 1
|
||||
END IF
|
||||
LET porcentaje = (cuenta1/registros) * 100
|
||||
DISPLAY porcentaje using "###","%" AT 20,19 ATTRIBUTE(BOLD)
|
||||
LET cuenta = cuenta + 1
|
||||
LET cuenta1 = cuenta1 + 1
|
||||
END IF
|
||||
|
||||
END FUNCTION
|
||||
Reference in New Issue
Block a user