237 lines
18 KiB
Plaintext
237 lines
18 KiB
Plaintext
<mxfile host="app.diagrams.net" modified="2023-04-15T07:06:34.883Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36" etag="1ak7x28XaoDP8CpgV_YR" version="21.1.8" type="device">
|
|
<diagram name="Page-1" id="05fWngS16l91GcL6yIBs">
|
|
<mxGraphModel dx="2739" dy="1075" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
|
<root>
|
|
<mxCell id="0" />
|
|
<mxCell id="1" parent="0" />
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-29" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
|
<mxGeometry x="-370" y="600" width="600" height="700" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-1" value="<p class="MsoNormal">Acquire user input of two workbook (membered, sales_record)</p><p class="MsoNormal">check head row to validate user input</p><p class="MsoNormal">validate workbook and worksheet&nbsp;</p><p class="MsoNormal">code:ValidateMemberInformationXlsx()<br></p><p class="MsoNormal">code:ValidateSalesRecord()</p>" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
|
<mxGeometry x="-110" y="50" width="370" height="160" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-2" value="<p class="MsoNormal">OK</p>" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
|
<mxGeometry x="-110" y="310" width="140" height="70" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-3" value="<p class="MsoNormal">Fail</p>" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
|
<mxGeometry x="120" y="310" width="140" height="70" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-4" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="Sxxe-mvxAXtsPCkKtpcs-1" target="Sxxe-mvxAXtsPCkKtpcs-2">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="20" y="390" as="sourcePoint" />
|
|
<mxPoint x="70" y="340" as="targetPoint" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-5" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.614;exitY=1.014;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="Sxxe-mvxAXtsPCkKtpcs-1" target="Sxxe-mvxAXtsPCkKtpcs-3">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="50" y="220" as="sourcePoint" />
|
|
<mxPoint x="-50" y="320" as="targetPoint" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-6" value="enable further generation" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
|
<mxGeometry x="-110" y="480" width="140" height="60" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-7" value="loop user until&nbsp;<br>valid sales_record<br>and member information found" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
|
<mxGeometry x="120" y="480" width="140" height="60" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-8" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="Sxxe-mvxAXtsPCkKtpcs-3" target="Sxxe-mvxAXtsPCkKtpcs-7">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="240" y="430" as="sourcePoint" />
|
|
<mxPoint x="290" y="380" as="targetPoint" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-9" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="Sxxe-mvxAXtsPCkKtpcs-7" target="Sxxe-mvxAXtsPCkKtpcs-1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="300" y="520" as="sourcePoint" />
|
|
<mxPoint x="340" y="420" as="targetPoint" />
|
|
<Array as="points">
|
|
<mxPoint x="320" y="510" />
|
|
<mxPoint x="320" y="130" />
|
|
</Array>
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-11" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="Sxxe-mvxAXtsPCkKtpcs-2" target="Sxxe-mvxAXtsPCkKtpcs-6">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="60" y="420" as="sourcePoint" />
|
|
<mxPoint x="110" y="370" as="targetPoint" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-12" value="member xlsx<br>OpenWorkbookMemberInformation" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
|
<mxGeometry x="-270" y="670" width="120" height="60" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-13" value="sales_record xlsx<br>OpenWorkbookSalesRecord" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
|
<mxGeometry x="-110" y="650" width="120" height="60" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-14" value="filtering" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
|
<mxGeometry x="-240" y="880" width="120" height="60" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-15" value="filtering" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
|
<mxGeometry x="-70" y="880" width="120" height="60" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-16" value="parse" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
|
<mxGeometry x="-240" y="780" width="120" height="60" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-17" value="parse" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
|
<mxGeometry x="-70" y="780" width="120" height="60" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-20" value="combine<br>WriteMonthlySalesReport" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
|
<mxGeometry x="-160" y="990" width="120" height="60" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-21" value="write report" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
|
<mxGeometry x="-160" y="1210" width="120" height="60" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-22" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.75;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="Sxxe-mvxAXtsPCkKtpcs-15" target="Sxxe-mvxAXtsPCkKtpcs-20">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="80" y="1030" as="sourcePoint" />
|
|
<mxPoint x="130" y="980" as="targetPoint" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-23" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="Sxxe-mvxAXtsPCkKtpcs-12" target="Sxxe-mvxAXtsPCkKtpcs-16">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="90" y="1040" as="sourcePoint" />
|
|
<mxPoint x="140" y="990" as="targetPoint" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-24" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="Sxxe-mvxAXtsPCkKtpcs-13">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="-10.419999999999987" y="740" as="sourcePoint" />
|
|
<mxPoint x="-10.419999999999987" y="780" as="targetPoint" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-25" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="-10.419999999999987" y="840" as="sourcePoint" />
|
|
<mxPoint x="-10.419999999999987" y="880" as="targetPoint" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-26" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="-180.42" y="840" as="sourcePoint" />
|
|
<mxPoint x="-180.42" y="880" as="targetPoint" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-27" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="Sxxe-mvxAXtsPCkKtpcs-14" target="Sxxe-mvxAXtsPCkKtpcs-20">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="-0.4199999999999875" y="850" as="sourcePoint" />
|
|
<mxPoint x="-0.4199999999999875" y="890" as="targetPoint" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-30" value="GenMonthlySalesReport" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
|
|
<mxGeometry x="-360" y="610" width="150" height="30" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-31" value="sales_record xlsx<br>ReadProductListNew" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
|
<mxGeometry x="70" y="650" width="120" height="60" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-32" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="Sxxe-mvxAXtsPCkKtpcs-31" target="Sxxe-mvxAXtsPCkKtpcs-33">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="110" y="710" as="sourcePoint" />
|
|
<mxPoint x="149.58" y="780" as="targetPoint" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-33" value="parse product list<br>output as dictionary<br>dicProfit" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
|
<mxGeometry x="70" y="780" width="120" height="60" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-34" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" target="Sxxe-mvxAXtsPCkKtpcs-20">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="129.58" y="840" as="sourcePoint" />
|
|
<mxPoint x="129.58" y="910" as="targetPoint" />
|
|
<Array as="points">
|
|
<mxPoint x="90" y="990" />
|
|
</Array>
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-35" value="prepare report<br>layout" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
|
<mxGeometry x="-160" y="1100" width="120" height="60" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-36" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="Sxxe-mvxAXtsPCkKtpcs-20" target="Sxxe-mvxAXtsPCkKtpcs-35">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="80" y="1070" as="sourcePoint" />
|
|
<mxPoint x="130" y="1020" as="targetPoint" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-37" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="-100.42" y="1160" as="sourcePoint" />
|
|
<mxPoint x="-100.42" y="1210" as="targetPoint" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-38" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
|
<mxGeometry x="340" y="570" width="600" height="700" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-40" value="sales_record xlsx<br>OpenWorkbookSalesRecord" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
|
<mxGeometry x="600" y="620" width="120" height="60" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-42" value="filtering" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
|
<mxGeometry x="640" y="850" width="120" height="60" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-44" value="parse" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
|
<mxGeometry x="640" y="750" width="120" height="60" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-45" value="combine<br>WriteMonthlySalesReport" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
|
<mxGeometry x="550" y="960" width="120" height="60" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-46" value="write report" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
|
<mxGeometry x="550" y="1180" width="120" height="60" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-47" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.75;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="Sxxe-mvxAXtsPCkKtpcs-42" target="Sxxe-mvxAXtsPCkKtpcs-45">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="790" y="1000" as="sourcePoint" />
|
|
<mxPoint x="840" y="950" as="targetPoint" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-49" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="Sxxe-mvxAXtsPCkKtpcs-40">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="699.58" y="710" as="sourcePoint" />
|
|
<mxPoint x="699.58" y="750" as="targetPoint" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-50" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="699.58" y="810" as="sourcePoint" />
|
|
<mxPoint x="699.58" y="850" as="targetPoint" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-53" value="GenMonthlySalesReport" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
|
|
<mxGeometry x="350" y="580" width="150" height="30" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-54" value="sales_record xlsx<br>ReadProductListNew" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
|
<mxGeometry x="780" y="620" width="120" height="60" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-55" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="Sxxe-mvxAXtsPCkKtpcs-54" target="Sxxe-mvxAXtsPCkKtpcs-56">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="820" y="680" as="sourcePoint" />
|
|
<mxPoint x="859.58" y="750" as="targetPoint" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-56" value="parse product list<br>output as dictionary<br>dicProfit" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
|
<mxGeometry x="780" y="750" width="120" height="60" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-57" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" target="Sxxe-mvxAXtsPCkKtpcs-45">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="839.58" y="810" as="sourcePoint" />
|
|
<mxPoint x="839.58" y="880" as="targetPoint" />
|
|
<Array as="points">
|
|
<mxPoint x="800" y="960" />
|
|
</Array>
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-58" value="prepare report<br>layout" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
|
<mxGeometry x="550" y="1070" width="120" height="60" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-59" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="Sxxe-mvxAXtsPCkKtpcs-45" target="Sxxe-mvxAXtsPCkKtpcs-58">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="790" y="1040" as="sourcePoint" />
|
|
<mxPoint x="840" y="990" as="targetPoint" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="Sxxe-mvxAXtsPCkKtpcs-60" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="609.58" y="1130" as="sourcePoint" />
|
|
<mxPoint x="609.58" y="1180" as="targetPoint" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
</root>
|
|
</mxGraphModel>
|
|
</diagram>
|
|
</mxfile>
|