purchase order & move order, item history & quotation analysis added.
parent
a2c8747d21
commit
a431913bb6
@ -0,0 +1,72 @@
|
||||
class GetAttachementList {
|
||||
int? aTTACHEDDOCUMENTID;
|
||||
int? cATEGORYID;
|
||||
int? dATATYPEID;
|
||||
int? dOCUMENTID;
|
||||
String? eNTITYNAME;
|
||||
String? fILECONTENTTYPE;
|
||||
String? fILEDATA;
|
||||
int? fILEID;
|
||||
String? fILENAME;
|
||||
String? pK1VALUE;
|
||||
String? pK2VALUE;
|
||||
String? pK3VALUE;
|
||||
String? pK4VALUE;
|
||||
String? pK5VALUE;
|
||||
int? sEQNUM;
|
||||
|
||||
GetAttachementList(
|
||||
{this.aTTACHEDDOCUMENTID,
|
||||
this.cATEGORYID,
|
||||
this.dATATYPEID,
|
||||
this.dOCUMENTID,
|
||||
this.eNTITYNAME,
|
||||
this.fILECONTENTTYPE,
|
||||
this.fILEDATA,
|
||||
this.fILEID,
|
||||
this.fILENAME,
|
||||
this.pK1VALUE,
|
||||
this.pK2VALUE,
|
||||
this.pK3VALUE,
|
||||
this.pK4VALUE,
|
||||
this.pK5VALUE,
|
||||
this.sEQNUM});
|
||||
|
||||
GetAttachementList.fromJson(Map<String, dynamic> json) {
|
||||
aTTACHEDDOCUMENTID = json['ATTACHED_DOCUMENT_ID'];
|
||||
cATEGORYID = json['CATEGORY_ID'];
|
||||
dATATYPEID = json['DATATYPE_ID'];
|
||||
dOCUMENTID = json['DOCUMENT_ID'];
|
||||
eNTITYNAME = json['ENTITY_NAME'];
|
||||
fILECONTENTTYPE = json['FILE_CONTENT_TYPE'];
|
||||
fILEDATA = json['FILE_DATA'];
|
||||
fILEID = json['FILE_ID'];
|
||||
fILENAME = json['FILE_NAME'];
|
||||
pK1VALUE = json['PK1_VALUE'];
|
||||
pK2VALUE = json['PK2_VALUE'];
|
||||
pK3VALUE = json['PK3_VALUE'];
|
||||
pK4VALUE = json['PK4_VALUE'];
|
||||
pK5VALUE = json['PK5_VALUE'];
|
||||
sEQNUM = json['SEQ_NUM'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['ATTACHED_DOCUMENT_ID'] = this.aTTACHEDDOCUMENTID;
|
||||
data['CATEGORY_ID'] = this.cATEGORYID;
|
||||
data['DATATYPE_ID'] = this.dATATYPEID;
|
||||
data['DOCUMENT_ID'] = this.dOCUMENTID;
|
||||
data['ENTITY_NAME'] = this.eNTITYNAME;
|
||||
data['FILE_CONTENT_TYPE'] = this.fILECONTENTTYPE;
|
||||
data['FILE_DATA'] = this.fILEDATA;
|
||||
data['FILE_ID'] = this.fILEID;
|
||||
data['FILE_NAME'] = this.fILENAME;
|
||||
data['PK1_VALUE'] = this.pK1VALUE;
|
||||
data['PK2_VALUE'] = this.pK2VALUE;
|
||||
data['PK3_VALUE'] = this.pK3VALUE;
|
||||
data['PK4_VALUE'] = this.pK4VALUE;
|
||||
data['PK5_VALUE'] = this.pK5VALUE;
|
||||
data['SEQ_NUM'] = this.sEQNUM;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,100 @@
|
||||
class GetMoItemHistoryList {
|
||||
String? dATEREQUIRED;
|
||||
String? dESCRIPTION;
|
||||
String? fROMLOCATOR;
|
||||
int? fROMROWNUM;
|
||||
String? fROMSUBINVENTORYCODE;
|
||||
String? iTEMCODE;
|
||||
String? lINESTATUSDIS;
|
||||
int? nOOFROWS;
|
||||
String? oPERATINGUNITNAME;
|
||||
String? oRGANIZATIONCODE;
|
||||
int? oRGANIZATIONID;
|
||||
String? oRGANIZATIONNAME;
|
||||
int? qUANTITY;
|
||||
String? rEQUESTNUMBER;
|
||||
int? rOWNUM;
|
||||
String? sHIPTOLOCATION;
|
||||
String? sTATUSDATE;
|
||||
String? tOLOCATOR;
|
||||
int? tOROWNUM;
|
||||
String? tOSUBINVENTORYCODE;
|
||||
String? tRANSACTIONTYPENAME;
|
||||
String? uNITOFMEASURE;
|
||||
|
||||
GetMoItemHistoryList(
|
||||
{this.dATEREQUIRED,
|
||||
this.dESCRIPTION,
|
||||
this.fROMLOCATOR,
|
||||
this.fROMROWNUM,
|
||||
this.fROMSUBINVENTORYCODE,
|
||||
this.iTEMCODE,
|
||||
this.lINESTATUSDIS,
|
||||
this.nOOFROWS,
|
||||
this.oPERATINGUNITNAME,
|
||||
this.oRGANIZATIONCODE,
|
||||
this.oRGANIZATIONID,
|
||||
this.oRGANIZATIONNAME,
|
||||
this.qUANTITY,
|
||||
this.rEQUESTNUMBER,
|
||||
this.rOWNUM,
|
||||
this.sHIPTOLOCATION,
|
||||
this.sTATUSDATE,
|
||||
this.tOLOCATOR,
|
||||
this.tOROWNUM,
|
||||
this.tOSUBINVENTORYCODE,
|
||||
this.tRANSACTIONTYPENAME,
|
||||
this.uNITOFMEASURE});
|
||||
|
||||
GetMoItemHistoryList.fromJson(Map<String, dynamic> json) {
|
||||
dATEREQUIRED = json['DATE_REQUIRED'];
|
||||
dESCRIPTION = json['DESCRIPTION'];
|
||||
fROMLOCATOR = json['FROM_LOCATOR'];
|
||||
fROMROWNUM = json['FROM_ROW_NUM'];
|
||||
fROMSUBINVENTORYCODE = json['FROM_SUBINVENTORY_CODE'];
|
||||
iTEMCODE = json['ITEM_CODE'];
|
||||
lINESTATUSDIS = json['LINE_STATUS_DIS'];
|
||||
nOOFROWS = json['NO_OF_ROWS'];
|
||||
oPERATINGUNITNAME = json['OPERATING_UNIT_NAME'];
|
||||
oRGANIZATIONCODE = json['ORGANIZATION_CODE'];
|
||||
oRGANIZATIONID = json['ORGANIZATION_ID'];
|
||||
oRGANIZATIONNAME = json['ORGANIZATION_NAME'];
|
||||
qUANTITY = json['QUANTITY'];
|
||||
rEQUESTNUMBER = json['REQUEST_NUMBER'];
|
||||
rOWNUM = json['ROW_NUM'];
|
||||
sHIPTOLOCATION = json['SHIP_TO_LOCATION'];
|
||||
sTATUSDATE = json['STATUS_DATE'];
|
||||
tOLOCATOR = json['TO_LOCATOR'];
|
||||
tOROWNUM = json['TO_ROW_NUM'];
|
||||
tOSUBINVENTORYCODE = json['TO_SUBINVENTORY_CODE'];
|
||||
tRANSACTIONTYPENAME = json['TRANSACTION_TYPE_NAME'];
|
||||
uNITOFMEASURE = json['UNIT_OF_MEASURE'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['DATE_REQUIRED'] = this.dATEREQUIRED;
|
||||
data['DESCRIPTION'] = this.dESCRIPTION;
|
||||
data['FROM_LOCATOR'] = this.fROMLOCATOR;
|
||||
data['FROM_ROW_NUM'] = this.fROMROWNUM;
|
||||
data['FROM_SUBINVENTORY_CODE'] = this.fROMSUBINVENTORYCODE;
|
||||
data['ITEM_CODE'] = this.iTEMCODE;
|
||||
data['LINE_STATUS_DIS'] = this.lINESTATUSDIS;
|
||||
data['NO_OF_ROWS'] = this.nOOFROWS;
|
||||
data['OPERATING_UNIT_NAME'] = this.oPERATINGUNITNAME;
|
||||
data['ORGANIZATION_CODE'] = this.oRGANIZATIONCODE;
|
||||
data['ORGANIZATION_ID'] = this.oRGANIZATIONID;
|
||||
data['ORGANIZATION_NAME'] = this.oRGANIZATIONNAME;
|
||||
data['QUANTITY'] = this.qUANTITY;
|
||||
data['REQUEST_NUMBER'] = this.rEQUESTNUMBER;
|
||||
data['ROW_NUM'] = this.rOWNUM;
|
||||
data['SHIP_TO_LOCATION'] = this.sHIPTOLOCATION;
|
||||
data['STATUS_DATE'] = this.sTATUSDATE;
|
||||
data['TO_LOCATOR'] = this.tOLOCATOR;
|
||||
data['TO_ROW_NUM'] = this.tOROWNUM;
|
||||
data['TO_SUBINVENTORY_CODE'] = this.tOSUBINVENTORYCODE;
|
||||
data['TRANSACTION_TYPE_NAME'] = this.tRANSACTIONTYPENAME;
|
||||
data['UNIT_OF_MEASURE'] = this.uNITOFMEASURE;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,92 @@
|
||||
class GetPoItemHistoryList {
|
||||
int? bALANCEQUANTITY;
|
||||
int? bONUSQUANTITY;
|
||||
String? bUYER;
|
||||
String? cLOSEDCODE;
|
||||
String? cREATIONDATE;
|
||||
int? dISCOUNTPERCENTAGE;
|
||||
int? fROMROWNUM;
|
||||
int? iTEMID;
|
||||
int? nETPRICE;
|
||||
int? nOOFROWS;
|
||||
String? oUNAME;
|
||||
String? pONUMBER;
|
||||
int? pURCHASEPRICE;
|
||||
int? qUANTITYORDERED;
|
||||
int? qUANTITYRECEIVED;
|
||||
int? rEVISIONNUM;
|
||||
int? rOWNUM;
|
||||
String? sUPPLIER;
|
||||
int? tOROWNUM;
|
||||
String? uOM;
|
||||
|
||||
GetPoItemHistoryList(
|
||||
{this.bALANCEQUANTITY,
|
||||
this.bONUSQUANTITY,
|
||||
this.bUYER,
|
||||
this.cLOSEDCODE,
|
||||
this.cREATIONDATE,
|
||||
this.dISCOUNTPERCENTAGE,
|
||||
this.fROMROWNUM,
|
||||
this.iTEMID,
|
||||
this.nETPRICE,
|
||||
this.nOOFROWS,
|
||||
this.oUNAME,
|
||||
this.pONUMBER,
|
||||
this.pURCHASEPRICE,
|
||||
this.qUANTITYORDERED,
|
||||
this.qUANTITYRECEIVED,
|
||||
this.rEVISIONNUM,
|
||||
this.rOWNUM,
|
||||
this.sUPPLIER,
|
||||
this.tOROWNUM,
|
||||
this.uOM});
|
||||
|
||||
GetPoItemHistoryList.fromJson(Map<String, dynamic> json) {
|
||||
bALANCEQUANTITY = json['BALANCE_QUANTITY'];
|
||||
bONUSQUANTITY = json['BONUS_QUANTITY'];
|
||||
bUYER = json['BUYER'];
|
||||
cLOSEDCODE = json['CLOSED_CODE'];
|
||||
cREATIONDATE = json['CREATION_DATE'];
|
||||
dISCOUNTPERCENTAGE = json['DISCOUNT_PERCENTAGE'];
|
||||
fROMROWNUM = json['FROM_ROW_NUM'];
|
||||
iTEMID = json['ITEM_ID'];
|
||||
nETPRICE = json['NET_PRICE'];
|
||||
nOOFROWS = json['NO_OF_ROWS'];
|
||||
oUNAME = json['OU_NAME'];
|
||||
pONUMBER = json['PO_NUMBER'];
|
||||
pURCHASEPRICE = json['PURCHASE_PRICE'];
|
||||
qUANTITYORDERED = json['QUANTITY_ORDERED'];
|
||||
qUANTITYRECEIVED = json['QUANTITY_RECEIVED'];
|
||||
rEVISIONNUM = json['REVISION_NUM'];
|
||||
rOWNUM = json['ROW_NUM'];
|
||||
sUPPLIER = json['SUPPLIER'];
|
||||
tOROWNUM = json['TO_ROW_NUM'];
|
||||
uOM = json['UOM'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['BALANCE_QUANTITY'] = this.bALANCEQUANTITY;
|
||||
data['BONUS_QUANTITY'] = this.bONUSQUANTITY;
|
||||
data['BUYER'] = this.bUYER;
|
||||
data['CLOSED_CODE'] = this.cLOSEDCODE;
|
||||
data['CREATION_DATE'] = this.cREATIONDATE;
|
||||
data['DISCOUNT_PERCENTAGE'] = this.dISCOUNTPERCENTAGE;
|
||||
data['FROM_ROW_NUM'] = this.fROMROWNUM;
|
||||
data['ITEM_ID'] = this.iTEMID;
|
||||
data['NET_PRICE'] = this.nETPRICE;
|
||||
data['NO_OF_ROWS'] = this.nOOFROWS;
|
||||
data['OU_NAME'] = this.oUNAME;
|
||||
data['PO_NUMBER'] = this.pONUMBER;
|
||||
data['PURCHASE_PRICE'] = this.pURCHASEPRICE;
|
||||
data['QUANTITY_ORDERED'] = this.qUANTITYORDERED;
|
||||
data['QUANTITY_RECEIVED'] = this.qUANTITYRECEIVED;
|
||||
data['REVISION_NUM'] = this.rEVISIONNUM;
|
||||
data['ROW_NUM'] = this.rOWNUM;
|
||||
data['SUPPLIER'] = this.sUPPLIER;
|
||||
data['TO_ROW_NUM'] = this.tOROWNUM;
|
||||
data['UOM'] = this.uOM;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,242 @@
|
||||
|
||||
class GetPoNotificationBodyList {
|
||||
List<POHeader>? pOHeader;
|
||||
List<POLines>? pOLines;
|
||||
String? pINFORMATION;
|
||||
String? pQUESTION;
|
||||
|
||||
GetPoNotificationBodyList(
|
||||
{this.pOHeader, this.pOLines, this.pINFORMATION, this.pQUESTION});
|
||||
|
||||
GetPoNotificationBodyList.fromJson(Map<String, dynamic> json) {
|
||||
if (json['POHeader'] != null) {
|
||||
pOHeader = <POHeader>[];
|
||||
json['POHeader'].forEach((v) {
|
||||
pOHeader!.add(new POHeader.fromJson(v));
|
||||
});
|
||||
}
|
||||
if (json['POLines'] != null) {
|
||||
pOLines = <POLines>[];
|
||||
json['POLines'].forEach((v) {
|
||||
pOLines!.add(new POLines.fromJson(v));
|
||||
});
|
||||
}
|
||||
pINFORMATION = json['P_INFORMATION'];
|
||||
pQUESTION = json['P_QUESTION'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
if (this.pOHeader != null) {
|
||||
data['POHeader'] = this.pOHeader!.map((v) => v.toJson()).toList();
|
||||
}
|
||||
if (this.pOLines != null) {
|
||||
data['POLines'] = this.pOLines!.map((v) => v.toJson()).toList();
|
||||
}
|
||||
data['P_INFORMATION'] = this.pINFORMATION;
|
||||
data['P_QUESTION'] = this.pQUESTION;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
class POHeader {
|
||||
String? bUYER;
|
||||
String? cOMMENTS;
|
||||
String? cREATIONDATE;
|
||||
String? cURRENCYNAME;
|
||||
int? cUSTOMDUTY;
|
||||
int? dISCOUNTAMOUNT;
|
||||
int? gROSSAMOUNT;
|
||||
String? lOCCUR;
|
||||
int? lOCCURTOTPOAMT;
|
||||
int? oTHERCHARGES;
|
||||
String? pAYMENTTERMS;
|
||||
String? pONUMBER;
|
||||
String? pREPARER;
|
||||
String? qUOTATIONDATE;
|
||||
String? qUOTATIONNUMBER;
|
||||
int? sALESTAX;
|
||||
int? sHIPHANDLE;
|
||||
String? sHIPTOLOCATIONNAME;
|
||||
int? tOTALPODISCOUNT;
|
||||
int? tOTPOAMT;
|
||||
String? tOTPOAMTWORD;
|
||||
String? vENDORNAME;
|
||||
String? vENDORSITECODE;
|
||||
|
||||
POHeader(
|
||||
{this.bUYER,
|
||||
this.cOMMENTS,
|
||||
this.cREATIONDATE,
|
||||
this.cURRENCYNAME,
|
||||
this.cUSTOMDUTY,
|
||||
this.dISCOUNTAMOUNT,
|
||||
this.gROSSAMOUNT,
|
||||
this.lOCCUR,
|
||||
this.lOCCURTOTPOAMT,
|
||||
this.oTHERCHARGES,
|
||||
this.pAYMENTTERMS,
|
||||
this.pONUMBER,
|
||||
this.pREPARER,
|
||||
this.qUOTATIONDATE,
|
||||
this.qUOTATIONNUMBER,
|
||||
this.sALESTAX,
|
||||
this.sHIPHANDLE,
|
||||
this.sHIPTOLOCATIONNAME,
|
||||
this.tOTALPODISCOUNT,
|
||||
this.tOTPOAMT,
|
||||
this.tOTPOAMTWORD,
|
||||
this.vENDORNAME,
|
||||
this.vENDORSITECODE});
|
||||
|
||||
POHeader.fromJson(Map<String, dynamic> json) {
|
||||
bUYER = json['BUYER'];
|
||||
cOMMENTS = json['COMMENTS'];
|
||||
cREATIONDATE = json['CREATION_DATE'];
|
||||
cURRENCYNAME = json['CURRENCY_NAME'];
|
||||
cUSTOMDUTY = json['CUSTOM_DUTY'];
|
||||
dISCOUNTAMOUNT = json['DISCOUNT_AMOUNT'];
|
||||
gROSSAMOUNT = json['GROSS_AMOUNT'];
|
||||
lOCCUR = json['LOC_CUR'];
|
||||
lOCCURTOTPOAMT = json['LOC_CUR_TOT_PO_AMT'];
|
||||
oTHERCHARGES = json['OTHER_CHARGES'];
|
||||
pAYMENTTERMS = json['PAYMENT_TERMS'];
|
||||
pONUMBER = json['PO_NUMBER'];
|
||||
pREPARER = json['PREPARER'];
|
||||
qUOTATIONDATE = json['QUOTATION_DATE'];
|
||||
qUOTATIONNUMBER = json['QUOTATION_NUMBER'];
|
||||
sALESTAX = json['SALES_TAX'];
|
||||
sHIPHANDLE = json['SHIP_HANDLE'];
|
||||
sHIPTOLOCATIONNAME = json['SHIP_TO_LOCATION_NAME'];
|
||||
tOTALPODISCOUNT = json['TOTAL_PO_DISCOUNT'];
|
||||
tOTPOAMT = json['TOT_PO_AMT'];
|
||||
tOTPOAMTWORD = json['TOT_PO_AMT_WORD'];
|
||||
vENDORNAME = json['VENDOR_NAME'];
|
||||
vENDORSITECODE = json['VENDOR_SITE_CODE'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['BUYER'] = this.bUYER;
|
||||
data['COMMENTS'] = this.cOMMENTS;
|
||||
data['CREATION_DATE'] = this.cREATIONDATE;
|
||||
data['CURRENCY_NAME'] = this.cURRENCYNAME;
|
||||
data['CUSTOM_DUTY'] = this.cUSTOMDUTY;
|
||||
data['DISCOUNT_AMOUNT'] = this.dISCOUNTAMOUNT;
|
||||
data['GROSS_AMOUNT'] = this.gROSSAMOUNT;
|
||||
data['LOC_CUR'] = this.lOCCUR;
|
||||
data['LOC_CUR_TOT_PO_AMT'] = this.lOCCURTOTPOAMT;
|
||||
data['OTHER_CHARGES'] = this.oTHERCHARGES;
|
||||
data['PAYMENT_TERMS'] = this.pAYMENTTERMS;
|
||||
data['PO_NUMBER'] = this.pONUMBER;
|
||||
data['PREPARER'] = this.pREPARER;
|
||||
data['QUOTATION_DATE'] = this.qUOTATIONDATE;
|
||||
data['QUOTATION_NUMBER'] = this.qUOTATIONNUMBER;
|
||||
data['SALES_TAX'] = this.sALESTAX;
|
||||
data['SHIP_HANDLE'] = this.sHIPHANDLE;
|
||||
data['SHIP_TO_LOCATION_NAME'] = this.sHIPTOLOCATIONNAME;
|
||||
data['TOTAL_PO_DISCOUNT'] = this.tOTALPODISCOUNT;
|
||||
data['TOT_PO_AMT'] = this.tOTPOAMT;
|
||||
data['TOT_PO_AMT_WORD'] = this.tOTPOAMTWORD;
|
||||
data['VENDOR_NAME'] = this.vENDORNAME;
|
||||
data['VENDOR_SITE_CODE'] = this.vENDORSITECODE;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
class POLines {
|
||||
String? dELIVERTOLOCATION;
|
||||
int? fROMROWNUM;
|
||||
String? iTEMCODE;
|
||||
String? iTEMDESCRIPTION;
|
||||
int? iTEMID;
|
||||
int? lINEAMOUNT;
|
||||
int? lINEDISCPERCENTAGE;
|
||||
int? lINENUM;
|
||||
String? lINETYPE;
|
||||
String? mFG;
|
||||
String? nEEDBYDATE;
|
||||
int? nOOFROWS;
|
||||
int? pOHEADERID;
|
||||
String? pROMISEDDATE;
|
||||
String? pRNUM;
|
||||
int? qUANTITY;
|
||||
String? rEQUESTOR;
|
||||
int? rOWNUM;
|
||||
int? tOROWNUM;
|
||||
int? uNITPRICE;
|
||||
String? uOM;
|
||||
|
||||
POLines(
|
||||
{this.dELIVERTOLOCATION,
|
||||
this.fROMROWNUM,
|
||||
this.iTEMCODE,
|
||||
this.iTEMDESCRIPTION,
|
||||
this.iTEMID,
|
||||
this.lINEAMOUNT,
|
||||
this.lINEDISCPERCENTAGE,
|
||||
this.lINENUM,
|
||||
this.lINETYPE,
|
||||
this.mFG,
|
||||
this.nEEDBYDATE,
|
||||
this.nOOFROWS,
|
||||
this.pOHEADERID,
|
||||
this.pROMISEDDATE,
|
||||
this.pRNUM,
|
||||
this.qUANTITY,
|
||||
this.rEQUESTOR,
|
||||
this.rOWNUM,
|
||||
this.tOROWNUM,
|
||||
this.uNITPRICE,
|
||||
this.uOM});
|
||||
|
||||
POLines.fromJson(Map<String, dynamic> json) {
|
||||
dELIVERTOLOCATION = json['DELIVER_TO_LOCATION'];
|
||||
fROMROWNUM = json['FROM_ROW_NUM'];
|
||||
iTEMCODE = json['ITEM_CODE'];
|
||||
iTEMDESCRIPTION = json['ITEM_DESCRIPTION'];
|
||||
iTEMID = json['ITEM_ID'];
|
||||
lINEAMOUNT = json['LINE_AMOUNT'];
|
||||
lINEDISCPERCENTAGE = json['LINE_DISC_PERCENTAGE'];
|
||||
lINENUM = json['LINE_NUM'];
|
||||
lINETYPE = json['LINE_TYPE'];
|
||||
mFG = json['MFG'];
|
||||
nEEDBYDATE = json['NEED_BY_DATE'];
|
||||
nOOFROWS = json['NO_OF_ROWS'];
|
||||
pOHEADERID = json['PO_HEADER_ID'];
|
||||
pROMISEDDATE = json['PROMISED_DATE'];
|
||||
pRNUM = json['PR_NUM'];
|
||||
qUANTITY = json['QUANTITY'];
|
||||
rEQUESTOR = json['REQUESTOR'];
|
||||
rOWNUM = json['ROW_NUM'];
|
||||
tOROWNUM = json['TO_ROW_NUM'];
|
||||
uNITPRICE = json['UNIT_PRICE'];
|
||||
uOM = json['UOM'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['DELIVER_TO_LOCATION'] = this.dELIVERTOLOCATION;
|
||||
data['FROM_ROW_NUM'] = this.fROMROWNUM;
|
||||
data['ITEM_CODE'] = this.iTEMCODE;
|
||||
data['ITEM_DESCRIPTION'] = this.iTEMDESCRIPTION;
|
||||
data['ITEM_ID'] = this.iTEMID;
|
||||
data['LINE_AMOUNT'] = this.lINEAMOUNT;
|
||||
data['LINE_DISC_PERCENTAGE'] = this.lINEDISCPERCENTAGE;
|
||||
data['LINE_NUM'] = this.lINENUM;
|
||||
data['LINE_TYPE'] = this.lINETYPE;
|
||||
data['MFG'] = this.mFG;
|
||||
data['NEED_BY_DATE'] = this.nEEDBYDATE;
|
||||
data['NO_OF_ROWS'] = this.nOOFROWS;
|
||||
data['PO_HEADER_ID'] = this.pOHEADERID;
|
||||
data['PROMISED_DATE'] = this.pROMISEDDATE;
|
||||
data['PR_NUM'] = this.pRNUM;
|
||||
data['QUANTITY'] = this.qUANTITY;
|
||||
data['REQUESTOR'] = this.rEQUESTOR;
|
||||
data['ROW_NUM'] = this.rOWNUM;
|
||||
data['TO_ROW_NUM'] = this.tOROWNUM;
|
||||
data['UNIT_PRICE'] = this.uNITPRICE;
|
||||
data['UOM'] = this.uOM;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,84 @@
|
||||
class GetQuotationAnalysisList {
|
||||
int? fROMROWNUM;
|
||||
String? iTEMCODE;
|
||||
String? iTEMDESC;
|
||||
int? nOOFROWS;
|
||||
String? qUOTBONUSQTY;
|
||||
String? qUOTDELIVERYDATE;
|
||||
int? qUOTLINETOTAL;
|
||||
String? qUOTMFGPARTNUM;
|
||||
String? qUOTNUM;
|
||||
int? qUOTQTY;
|
||||
int? qUOTUNITPRICE;
|
||||
String? qUOTUOM;
|
||||
String? rFQNUM;
|
||||
int? rFQQTY;
|
||||
String? rFQUOM;
|
||||
int? rOWNUM;
|
||||
int? tOROWNUM;
|
||||
String? vENDORNAME;
|
||||
|
||||
GetQuotationAnalysisList(
|
||||
{this.fROMROWNUM,
|
||||
this.iTEMCODE,
|
||||
this.iTEMDESC,
|
||||
this.nOOFROWS,
|
||||
this.qUOTBONUSQTY,
|
||||
this.qUOTDELIVERYDATE,
|
||||
this.qUOTLINETOTAL,
|
||||
this.qUOTMFGPARTNUM,
|
||||
this.qUOTNUM,
|
||||
this.qUOTQTY,
|
||||
this.qUOTUNITPRICE,
|
||||
this.qUOTUOM,
|
||||
this.rFQNUM,
|
||||
this.rFQQTY,
|
||||
this.rFQUOM,
|
||||
this.rOWNUM,
|
||||
this.tOROWNUM,
|
||||
this.vENDORNAME});
|
||||
|
||||
GetQuotationAnalysisList.fromJson(Map<String, dynamic> json) {
|
||||
fROMROWNUM = json['FROM_ROW_NUM'];
|
||||
iTEMCODE = json['ITEM_CODE'];
|
||||
iTEMDESC = json['ITEM_DESC'];
|
||||
nOOFROWS = json['NO_OF_ROWS'];
|
||||
qUOTBONUSQTY = json['QUOT_BONUS_QTY'];
|
||||
qUOTDELIVERYDATE = json['QUOT_DELIVERY_DATE'];
|
||||
qUOTLINETOTAL = json['QUOT_LINE_TOTAL'];
|
||||
qUOTMFGPARTNUM = json['QUOT_MFG_PART_NUM'];
|
||||
qUOTNUM = json['QUOT_NUM'];
|
||||
qUOTQTY = json['QUOT_QTY'];
|
||||
qUOTUNITPRICE = json['QUOT_UNIT_PRICE'];
|
||||
qUOTUOM = json['QUOT_UOM'];
|
||||
rFQNUM = json['RFQ_NUM'];
|
||||
rFQQTY = json['RFQ_QTY'];
|
||||
rFQUOM = json['RFQ_UOM'];
|
||||
rOWNUM = json['ROW_NUM'];
|
||||
tOROWNUM = json['TO_ROW_NUM'];
|
||||
vENDORNAME = json['VENDOR_NAME'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['FROM_ROW_NUM'] = this.fROMROWNUM;
|
||||
data['ITEM_CODE'] = this.iTEMCODE;
|
||||
data['ITEM_DESC'] = this.iTEMDESC;
|
||||
data['NO_OF_ROWS'] = this.nOOFROWS;
|
||||
data['QUOT_BONUS_QTY'] = this.qUOTBONUSQTY;
|
||||
data['QUOT_DELIVERY_DATE'] = this.qUOTDELIVERYDATE;
|
||||
data['QUOT_LINE_TOTAL'] = this.qUOTLINETOTAL;
|
||||
data['QUOT_MFG_PART_NUM'] = this.qUOTMFGPARTNUM;
|
||||
data['QUOT_NUM'] = this.qUOTNUM;
|
||||
data['QUOT_QTY'] = this.qUOTQTY;
|
||||
data['QUOT_UNIT_PRICE'] = this.qUOTUNITPRICE;
|
||||
data['QUOT_UOM'] = this.qUOTUOM;
|
||||
data['RFQ_NUM'] = this.rFQNUM;
|
||||
data['RFQ_QTY'] = this.rFQQTY;
|
||||
data['RFQ_UOM'] = this.rFQUOM;
|
||||
data['ROW_NUM'] = this.rOWNUM;
|
||||
data['TO_ROW_NUM'] = this.tOROWNUM;
|
||||
data['VENDOR_NAME'] = this.vENDORNAME;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,18 @@
|
||||
class NotificationAction {
|
||||
String? pRETURNMSG;
|
||||
String? pRETURNSTATUS;
|
||||
|
||||
NotificationAction({this.pRETURNMSG, this.pRETURNSTATUS});
|
||||
|
||||
NotificationAction.fromJson(Map<String, dynamic> json) {
|
||||
pRETURNMSG = json['P_RETURN_MSG'];
|
||||
pRETURNSTATUS = json['P_RETURN_STATUS'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['P_RETURN_MSG'] = this.pRETURNMSG;
|
||||
data['P_RETURN_STATUS'] = this.pRETURNSTATUS;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,182 @@
|
||||
import 'package:easy_localization/src/public_ext.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:mohem_flutter_app/api/worklist/worklist_api_client.dart';
|
||||
import 'package:mohem_flutter_app/classes/utils.dart';
|
||||
import 'package:mohem_flutter_app/extensions/int_extensions.dart';
|
||||
import 'package:mohem_flutter_app/extensions/widget_extensions.dart';
|
||||
import 'package:mohem_flutter_app/generated/locale_keys.g.dart';
|
||||
import 'package:mohem_flutter_app/models/get_mo_Item_history_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/get_po_Item_history_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/get_quotation_analysis_list_model.dart';
|
||||
import 'package:mohem_flutter_app/widgets/app_bar_widget.dart';
|
||||
import 'package:mohem_flutter_app/widgets/item_detail_view_widget.dart';
|
||||
|
||||
class ItemHistoryScreenParams {
|
||||
String? title;
|
||||
bool isItemHistory;
|
||||
bool isMO;
|
||||
int? pItemId;
|
||||
int? pPoHeaderId;
|
||||
int? pOrgId;
|
||||
|
||||
ItemHistoryScreenParams({@required this.title, this.isItemHistory = true, this.isMO = true, this.pItemId, this.pPoHeaderId, this.pOrgId});
|
||||
}
|
||||
|
||||
class ItemHistoryScreen extends StatefulWidget {
|
||||
ItemHistoryScreen({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
_ItemHistoryScreenState createState() {
|
||||
return _ItemHistoryScreenState();
|
||||
}
|
||||
}
|
||||
|
||||
class _ItemHistoryScreenState extends State<ItemHistoryScreen> {
|
||||
ItemHistoryScreenParams? _screenParams;
|
||||
|
||||
List<GetMoItemHistoryList> moItemHistoryList = [];
|
||||
List<GetPoItemHistoryList> poItemHistoryList = [];
|
||||
List<GetQuotationAnalysisList> quotationAnalysisList = [];
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
void loadData() {
|
||||
if (_screenParams == null) {
|
||||
_screenParams = ModalRoute.of(context)!.settings.arguments as ItemHistoryScreenParams;
|
||||
getDataFromApi();
|
||||
}
|
||||
}
|
||||
|
||||
void getDataFromApi() async {
|
||||
try {
|
||||
Utils.showLoading(context);
|
||||
if (_screenParams!.isItemHistory) {
|
||||
if (_screenParams!.isMO) {
|
||||
moItemHistoryList = await WorkListApiClient().getMoItemHistory(_screenParams!.pItemId!, _screenParams!.pOrgId!);
|
||||
} else {
|
||||
poItemHistoryList = await WorkListApiClient().getPoItemHistory(_screenParams!.pItemId!);
|
||||
}
|
||||
} else {
|
||||
quotationAnalysisList = await WorkListApiClient().getQuotationAnalysis(_screenParams!.pItemId!, _screenParams!.pPoHeaderId!);
|
||||
}
|
||||
|
||||
Utils.hideLoading(context);
|
||||
setState(() {});
|
||||
} catch (ex) {
|
||||
Utils.hideLoading(context);
|
||||
Utils.handleException(ex, context, null);
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
loadData();
|
||||
return Scaffold(
|
||||
appBar: AppBarWidget(context, title: _screenParams?.title ?? ""),
|
||||
backgroundColor: Colors.white,
|
||||
body: ListView(
|
||||
padding: const EdgeInsets.all(21),
|
||||
physics: const BouncingScrollPhysics(),
|
||||
children: [
|
||||
if (moItemHistoryList.isNotEmpty) loadMoItemHistoryData(),
|
||||
if (poItemHistoryList.isNotEmpty) loadPoItemHistoryData(),
|
||||
if (quotationAnalysisList.isNotEmpty) loadQuotationAnalysisData()
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget loadMoItemHistoryData() {
|
||||
return ListView.separated(
|
||||
shrinkWrap: true,
|
||||
physics: const NeverScrollableScrollPhysics(),
|
||||
itemBuilder: (cxt, index) => Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
ItemDetailView(LocaleKeys.requestNumber.tr(), moItemHistoryList[index].rEQUESTNUMBER ?? ""),
|
||||
ItemDetailView(LocaleKeys.uom.tr(), moItemHistoryList[index].uNITOFMEASURE ?? ""),
|
||||
ItemDetailView(LocaleKeys.quantity.tr(), moItemHistoryList[index].qUANTITY?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.dateRequired.tr(), moItemHistoryList[index].dATEREQUIRED ?? ""),
|
||||
ItemDetailView(LocaleKeys.lineStatus.tr(), moItemHistoryList[index].lINESTATUSDIS ?? ""),
|
||||
ItemDetailView(LocaleKeys.statusDate.tr(), moItemHistoryList[index].sTATUSDATE ?? ""),
|
||||
ItemDetailView(LocaleKeys.transactionType.tr(), moItemHistoryList[index].tRANSACTIONTYPENAME ?? ""),
|
||||
ItemDetailView(LocaleKeys.organization.tr(), moItemHistoryList[index].oRGANIZATIONNAME ?? ""),
|
||||
ItemDetailView(LocaleKeys.operatingCode.tr(), moItemHistoryList[index].oRGANIZATIONCODE ?? ""),
|
||||
ItemDetailView(LocaleKeys.operatingUnit.tr(), moItemHistoryList[index].oPERATINGUNITNAME ?? ""),
|
||||
ItemDetailView(LocaleKeys.fromSubInventory.tr(), moItemHistoryList[index].fROMSUBINVENTORYCODE ?? ""),
|
||||
ItemDetailView(LocaleKeys.fromLocator.tr(), moItemHistoryList[index].fROMLOCATOR ?? ""),
|
||||
ItemDetailView(LocaleKeys.toSubInventory.tr(), moItemHistoryList[index].tOSUBINVENTORYCODE ?? ""),
|
||||
ItemDetailView(LocaleKeys.toLocator.tr(), moItemHistoryList[index].tOLOCATOR ?? ""),
|
||||
ItemDetailView(LocaleKeys.shipToLocation.tr(), moItemHistoryList[index].sHIPTOLOCATION ?? ""),
|
||||
],
|
||||
).objectContainerView(),
|
||||
separatorBuilder: (cxt, index) => 12.height,
|
||||
itemCount: moItemHistoryList.length);
|
||||
}
|
||||
|
||||
Widget loadPoItemHistoryData() {
|
||||
return ListView.separated(
|
||||
shrinkWrap: true,
|
||||
physics: const NeverScrollableScrollPhysics(),
|
||||
itemBuilder: (cxt, index) => Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
ItemDetailView(LocaleKeys.operatingUnit.tr(), poItemHistoryList[index].oUNAME ?? ""),
|
||||
ItemDetailView(LocaleKeys.poNumber.tr(), poItemHistoryList[index].pONUMBER ?? ""),
|
||||
ItemDetailView(LocaleKeys.revision.tr(), poItemHistoryList[index].rEVISIONNUM?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.creationDate.tr(), poItemHistoryList[index].cREATIONDATE ?? ""),
|
||||
ItemDetailView(LocaleKeys.supplier.tr(), poItemHistoryList[index].sUPPLIER ?? ""),
|
||||
ItemDetailView(LocaleKeys.buyer.tr(), poItemHistoryList[index].bUYER ?? ""),
|
||||
ItemDetailView(LocaleKeys.uom.tr(), poItemHistoryList[index].uOM ?? ""),
|
||||
ItemDetailView(LocaleKeys.quantityOrdered.tr(), poItemHistoryList[index].qUANTITYORDERED?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.quantityReceived.tr(), poItemHistoryList[index].qUANTITYRECEIVED?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.bonusQuantity.tr(), poItemHistoryList[index].bONUSQUANTITY?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.purchasePrice.tr(), poItemHistoryList[index].pURCHASEPRICE?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.discountPer.tr(), poItemHistoryList[index].dISCOUNTPERCENTAGE?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.balanceQuantity.tr(), poItemHistoryList[index].bALANCEQUANTITY?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.netPrice.tr(), poItemHistoryList[index].nETPRICE?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.closureStatus.tr(), poItemHistoryList[index].cLOSEDCODE ?? ""),
|
||||
],
|
||||
).objectContainerView(),
|
||||
separatorBuilder: (cxt, index) => 12.height,
|
||||
itemCount: poItemHistoryList.length);
|
||||
}
|
||||
|
||||
Widget loadQuotationAnalysisData() {
|
||||
return ListView.separated(
|
||||
shrinkWrap: true,
|
||||
physics: const NeverScrollableScrollPhysics(),
|
||||
itemBuilder: (cxt, index) => Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
ItemDetailView(LocaleKeys.quotationNumber.tr(), quotationAnalysisList[index].qUOTNUM ?? ""),
|
||||
ItemDetailView(LocaleKeys.vendorName.tr(), quotationAnalysisList[index].vENDORNAME ?? ""),
|
||||
ItemDetailView(LocaleKeys.itemCode.tr(), quotationAnalysisList[index].iTEMCODE ?? ""),
|
||||
ItemDetailView(LocaleKeys.description.tr(), quotationAnalysisList[index].iTEMDESC ?? ""),
|
||||
ItemDetailView(LocaleKeys.quotationQty.tr(), quotationAnalysisList[index].qUOTQTY?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.quotationUOM.tr(), quotationAnalysisList[index].qUOTUOM ?? ""),
|
||||
ItemDetailView(LocaleKeys.quotationNetPrice.tr(), quotationAnalysisList[index].qUOTUNITPRICE?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.quotationLineTotal.tr(), quotationAnalysisList[index].qUOTLINETOTAL?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.quotationBonusQuantity.tr(), quotationAnalysisList[index].qUOTBONUSQTY ?? ""),
|
||||
ItemDetailView(LocaleKeys.quotationDeliveryDate.tr(), quotationAnalysisList[index].qUOTDELIVERYDATE ?? ""),
|
||||
ItemDetailView(LocaleKeys.quotationMFGPartNumber.tr(), quotationAnalysisList[index].qUOTMFGPARTNUM ?? ""),
|
||||
ItemDetailView(LocaleKeys.rfqNumber.tr(), quotationAnalysisList[index].rFQNUM ?? ""),
|
||||
ItemDetailView(LocaleKeys.rfqQty.tr(), quotationAnalysisList[index].rFQQTY?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.rfqUOM.tr(), quotationAnalysisList[index].rFQUOM ?? ""),
|
||||
],
|
||||
).objectContainerView(title: "${quotationAnalysisList[index].iTEMCODE}-${quotationAnalysisList[index].iTEMDESC}" ?? ""),
|
||||
separatorBuilder: (cxt, index) => 12.height,
|
||||
itemCount: quotationAnalysisList.length);
|
||||
}
|
||||
}
|
||||
@ -1,86 +1,115 @@
|
||||
import 'package:easy_localization/src/public_ext.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:mohem_flutter_app/classes/colors.dart';
|
||||
import 'package:mohem_flutter_app/config/routes.dart';
|
||||
import 'package:mohem_flutter_app/extensions/int_extensions.dart';
|
||||
import 'package:mohem_flutter_app/extensions/string_extensions.dart';
|
||||
import 'package:mohem_flutter_app/extensions/widget_extensions.dart';
|
||||
import 'package:mohem_flutter_app/generated/locale_keys.g.dart';
|
||||
import 'package:mohem_flutter_app/models/get_mo_notification_body_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/get_po_notification_body_list_model.dart';
|
||||
import 'package:mohem_flutter_app/ui/work_list/item_history_screen.dart';
|
||||
import 'package:mohem_flutter_app/widgets/button/default_button.dart';
|
||||
import 'package:mohem_flutter_app/widgets/item_detail_view_widget.dart';
|
||||
|
||||
class RequestFragment extends StatefulWidget {
|
||||
@override
|
||||
State<RequestFragment> createState() => _RequestFragmentState();
|
||||
}
|
||||
class RequestFragment extends StatelessWidget {
|
||||
final List<GetMoNotificationBodyList> moNotificationBodyList;
|
||||
final List<POLines> poLinesList;
|
||||
|
||||
class _RequestFragmentState extends State<RequestFragment> {
|
||||
bool isOpened = false;
|
||||
RequestFragment({Key? key, this.moNotificationBodyList = const <GetMoNotificationBodyList>[], this.poLinesList = const <POLines>[]}) : super(key: key);
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Container(
|
||||
width: double.infinity,
|
||||
height: double.infinity,
|
||||
child: Column(
|
||||
children: [
|
||||
Container(
|
||||
width: double.infinity,
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.white,
|
||||
borderRadius: BorderRadius.circular(15),
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
color: const Color(0xff000000).withOpacity(.05),
|
||||
blurRadius: 26,
|
||||
offset: const Offset(0, -3),
|
||||
),
|
||||
],
|
||||
),
|
||||
margin: EdgeInsets.all(21),
|
||||
padding: EdgeInsets.only(top: 21, bottom: 21, right: 16, left: 16),
|
||||
child: Column(
|
||||
return ListView(
|
||||
physics: const BouncingScrollPhysics(),
|
||||
padding: const EdgeInsets.all(21),
|
||||
children: [
|
||||
if (moNotificationBodyList.isNotEmpty) moNotificationDataView(),
|
||||
if (poLinesList.isNotEmpty) poLinesDataView(),
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
Widget poLinesDataView() {
|
||||
return ListView.separated(
|
||||
shrinkWrap: true,
|
||||
physics: const NeverScrollableScrollPhysics(),
|
||||
itemBuilder: (cxt, index) => Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
ItemDetailView(LocaleKeys.code.tr(), poLinesList[index].iTEMCODE ?? ""),
|
||||
ItemDetailView(LocaleKeys.mfg.tr(), poLinesList[index].uOM ?? ""),
|
||||
ItemDetailView(LocaleKeys.lineType.tr(), poLinesList[index].qUANTITY?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.unit.tr(), poLinesList[index].uOM ?? ""),
|
||||
ItemDetailView(LocaleKeys.price.tr(), poLinesList[index].uNITPRICE?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.lineAmount.tr(), poLinesList[index].lINEAMOUNT?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.quantity.tr(), poLinesList[index].qUANTITY?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.lineDiscount.tr(), poLinesList[index].lINEDISCPERCENTAGE?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.needByDate.tr(), poLinesList[index].nEEDBYDATE ?? ""),
|
||||
ItemDetailView(LocaleKeys.promisedDate.tr(), poLinesList[index].pROMISEDDATE ?? ""),
|
||||
ItemDetailView(LocaleKeys.deliverToLocation.tr(), poLinesList[index].dELIVERTOLOCATION ?? ""),
|
||||
ItemDetailView(LocaleKeys.requisitionNumber.tr(), poLinesList[index].rEQUESTOR ?? ""),
|
||||
ItemDetailView(LocaleKeys.requester.tr(), poLinesList[index].pRNUM ?? ""),
|
||||
12.height,
|
||||
Row(
|
||||
children: [
|
||||
Expanded(
|
||||
child: "Hardware Mobility 161 Messenger".toText16(),
|
||||
),
|
||||
Icon(Icons.keyboard_arrow_down_rounded),
|
||||
DefaultButton(LocaleKeys.itemHistory.tr(), () {
|
||||
Navigator.pushNamed(
|
||||
cxt,
|
||||
AppRoutes.itemHistory,
|
||||
arguments: ItemHistoryScreenParams(title: LocaleKeys.itemHistory.tr(), isMO: false, pItemId: poLinesList[index].iTEMID),
|
||||
);
|
||||
}).expanded,
|
||||
12.width,
|
||||
DefaultButton(LocaleKeys.quotationAnalysis.tr(), () {
|
||||
Navigator.pushNamed(
|
||||
cxt,
|
||||
AppRoutes.itemHistory,
|
||||
arguments: ItemHistoryScreenParams(
|
||||
isItemHistory: false, isMO: false, title: LocaleKeys.quotationAnalysis.tr(), pItemId: poLinesList[index].iTEMID, pPoHeaderId: poLinesList[index].pOHEADERID),
|
||||
);
|
||||
}).expanded,
|
||||
],
|
||||
),
|
||||
Column(
|
||||
children: [
|
||||
12.height,
|
||||
showItem("Code:", "3188000067"),
|
||||
showItem("Quantity:", "1"),
|
||||
showItem("Line Status:", "Pending Approval"),
|
||||
showItem("Transection Type:", "Move Order Issue:"),
|
||||
showItem("Organization Code:", "SWD"),
|
||||
showItem("From Subinventory:", "SWD_MSPS"),
|
||||
showItem("To Subinventory:", "SWD_MSPS"),
|
||||
showItem("Ship To Location :", "SWD 11206-E.R. (Emergency Room)"),
|
||||
showItem("Unit:", "Each"),
|
||||
showItem("Date Required:", "12/23/2019 4:54:04 PM"),
|
||||
showItem("Status Date:", "12/23/2019 4:54:04 PM"),
|
||||
showItem("Operation Unit:", "Sehat Al Sewedi"),
|
||||
showItem("Organization:", "Sehat Al Sewedi"),
|
||||
showItem("From Locator:", "-"),
|
||||
showItem("To Locator :", "-"),
|
||||
],
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
).objectContainerView(title: poLinesList[index].iTEMDESCRIPTION!),
|
||||
separatorBuilder: (cxt, index) => 12.height,
|
||||
itemCount: poLinesList.length);
|
||||
}
|
||||
|
||||
Widget showItem(String title, String value) {
|
||||
return Padding(
|
||||
padding: const EdgeInsets.only(top: 2, bottom: 2),
|
||||
child: Row(
|
||||
children: [
|
||||
title.toText12(isBold: true),
|
||||
6.width,
|
||||
title.toText12(isBold: false, color: MyColors.normalTextColor),
|
||||
],
|
||||
),
|
||||
);
|
||||
Widget moNotificationDataView() {
|
||||
return ListView.separated(
|
||||
shrinkWrap: true,
|
||||
physics: const NeverScrollableScrollPhysics(),
|
||||
itemBuilder: (cxt, index) => Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
ItemDetailView(LocaleKeys.code.tr(), moNotificationBodyList[index].iTEMCODE ?? ""),
|
||||
ItemDetailView(LocaleKeys.unit.tr(), moNotificationBodyList[index].uOM ?? ""),
|
||||
ItemDetailView(LocaleKeys.quantity.tr(), moNotificationBodyList[index].qUANTITY?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.dateRequired.tr(), moNotificationBodyList[index].dATEREQUIRED ?? ""),
|
||||
ItemDetailView(LocaleKeys.lineStatus.tr(), moNotificationBodyList[index].lINESTATUS ?? ""),
|
||||
ItemDetailView(LocaleKeys.statusDate.tr(), moNotificationBodyList[index].sTATUSDATE ?? ""),
|
||||
ItemDetailView(LocaleKeys.transactionType.tr(), moNotificationBodyList[index].tRANSACTIONTYPENAME ?? ""),
|
||||
ItemDetailView(LocaleKeys.operatingUnit.tr(), moNotificationBodyList[index].oPERATINGUNIT ?? ""),
|
||||
ItemDetailView(LocaleKeys.organizationCode.tr(), moNotificationBodyList[index].oRGANIZATIONCODE ?? ""),
|
||||
ItemDetailView(LocaleKeys.organization.tr(), moNotificationBodyList[index].oRGANIZATIONNAME ?? ""),
|
||||
ItemDetailView(LocaleKeys.fromSubInventory.tr(), moNotificationBodyList[index].fROMSUBINVENTORY ?? ""),
|
||||
ItemDetailView(LocaleKeys.fromLocator.tr(), moNotificationBodyList[index].fROMLOCATOR ?? ""),
|
||||
ItemDetailView(LocaleKeys.toSubInventory.tr(), moNotificationBodyList[index].tOSUBINVENTORY ?? ""),
|
||||
ItemDetailView(LocaleKeys.toLocator.tr(), moNotificationBodyList[index].tOLOCATOR ?? ""),
|
||||
ItemDetailView(LocaleKeys.shipToLocator.tr(), moNotificationBodyList[index].sHIPTOLOCATION ?? ""),
|
||||
12.height,
|
||||
DefaultButton(LocaleKeys.itemHistory.tr(), () {
|
||||
Navigator.pushNamed(
|
||||
cxt,
|
||||
AppRoutes.itemHistory,
|
||||
arguments: ItemHistoryScreenParams(title: LocaleKeys.itemHistory.tr(), pItemId: moNotificationBodyList[index].iTEMID, pOrgId: moNotificationBodyList[index].oRGID),
|
||||
);
|
||||
})
|
||||
],
|
||||
).objectContainerView(title: moNotificationBodyList[index].dESCRIPTION ?? ""),
|
||||
separatorBuilder: (cxt, index) => 12.height,
|
||||
itemCount: moNotificationBodyList.length);
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,103 @@
|
||||
import 'package:easy_localization/src/public_ext.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:mohem_flutter_app/classes/colors.dart';
|
||||
import 'package:mohem_flutter_app/extensions/int_extensions.dart';
|
||||
import 'package:mohem_flutter_app/extensions/widget_extensions.dart';
|
||||
import 'package:mohem_flutter_app/generated/locale_keys.g.dart';
|
||||
import 'package:mohem_flutter_app/models/notification_get_respond_attributes_list_model.dart';
|
||||
import 'package:mohem_flutter_app/widgets/button/default_button.dart';
|
||||
import 'package:mohem_flutter_app/widgets/input_widget.dart';
|
||||
|
||||
class AcceptRejectInputDialog extends StatelessWidget {
|
||||
final String? title;
|
||||
final String? message;
|
||||
final String? okTitle;
|
||||
final NotificationGetRespondAttributesList? notificationGetRespond;
|
||||
final Function(String) onTap;
|
||||
|
||||
AcceptRejectInputDialog({Key? key, this.title, @required this.message, this.okTitle, required this.onTap, this.notificationGetRespond}) : super(key: key);
|
||||
|
||||
String note = "";
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Dialog(
|
||||
backgroundColor: Colors.white,
|
||||
shape: const RoundedRectangleBorder(),
|
||||
insetPadding: const EdgeInsets.only(left: 21, right: 21),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.only(left: 20, right: 20, top: 18, bottom: 28),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Expanded(
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.only(top: 16.0),
|
||||
child: Text(
|
||||
title ?? LocaleKeys.confirm.tr(),
|
||||
style: const TextStyle(fontSize: 24, fontWeight: FontWeight.w600, color: Color(0xff2B353E), height: 35 / 24, letterSpacing: -0.96),
|
||||
),
|
||||
),
|
||||
),
|
||||
IconButton(
|
||||
padding: EdgeInsets.zero,
|
||||
icon: const Icon(Icons.close),
|
||||
color: const Color(0xff2B353E),
|
||||
constraints: const BoxConstraints(),
|
||||
onPressed: () {
|
||||
Navigator.pop(context);
|
||||
},
|
||||
)
|
||||
],
|
||||
),
|
||||
Text(
|
||||
message ?? "",
|
||||
style: const TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: Color(0xff808080), letterSpacing: -0.48),
|
||||
),
|
||||
if (notificationGetRespond != null) ...[
|
||||
14.height,
|
||||
InputWidget(
|
||||
"Enter a Note",
|
||||
notificationGetRespond!.attributeDisplayName!,
|
||||
TextEditingController(),
|
||||
isBackgroundEnable: true,
|
||||
lines: 3,
|
||||
onChange: (String note) {
|
||||
this.note = note;
|
||||
},
|
||||
),
|
||||
],
|
||||
28.height,
|
||||
Row(
|
||||
children: [
|
||||
DefaultButton(
|
||||
LocaleKeys.cancel.tr(),
|
||||
() => Navigator.pop(context),
|
||||
colors: const [MyColors.lightGreyEAColor, MyColors.lightGreyEAColor],
|
||||
textColor: MyColors.darkTextColor,
|
||||
).expanded,
|
||||
10.width,
|
||||
DefaultButton(
|
||||
LocaleKeys.ok.tr(),
|
||||
() {
|
||||
Navigator.pop(context);
|
||||
onTap(note);
|
||||
},
|
||||
colors: const [
|
||||
Color(0xff28C884),
|
||||
Color(0xff1BB271),
|
||||
],
|
||||
).expanded,
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,23 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:mohem_flutter_app/classes/colors.dart';
|
||||
import 'package:mohem_flutter_app/extensions/int_extensions.dart';
|
||||
import 'package:mohem_flutter_app/extensions/string_extensions.dart';
|
||||
import 'package:mohem_flutter_app/extensions/widget_extensions.dart';
|
||||
|
||||
class ItemDetailView extends StatelessWidget {
|
||||
final String title;
|
||||
final String value;
|
||||
const ItemDetailView(this.title, this.value, {Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
"$title:".toText12(isBold: true, color: const Color(0xff2D3238)),
|
||||
6.width,
|
||||
(value.isEmpty ? "--" : value).toText12(color: MyColors.normalTextColor).expanded,
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue